序言

本文目的是使公司内网部署的Web可以使用https的方式访问

现有部署的系统有用域名访问,有用IP访问,但都是用http的方式

所以打算在公司内网部署统一的CA证书,并可以自己签发对应的域名和IP证书

使得可以用https的方式访问各Web系统

工具下载

XCA下载地址

Github:https://github.com/chris2511/xca

第一步,创建XCA数据库,这样所有的XCA数据都保存在这个文件里面。

创建了数据库后,就默认打开了这个文件

接下来我们在“私钥”界面要创建一个密钥

在“证书”界面创建CA证书

在“主体”页签,修改个性化信息

在“扩展”页签,主要配置证书的类型与时间

在“密钥用法”主要配置证书的用途

点确定后,在证书界面就创建了一个CA证书

第二步:把CA证书导出,然后导入到其它内网的所有电脑,以后这个CA签发的所有证书就都会自动信任

导出CA证书为crt文件,如果是andorid等移动设备,可以选择导出为cer类型文件

把证书导入到Windows,服务器与客户端都要导入此CA证书

在开始“运行”里面输入mmc,打开windows管理控制台



在“证书-->受信用的根证书颁发机构-->证书”下面点右键,选择导入



其它电脑同样按此操作,也可以双击crt文件导入,

主要是导入的位置一定是要在”受信用的根证书颁发机构“下面

第三步,使用CA证书签发域名与IP证书

我们签发一个证书,同时支持

IP:10.76.99.18

泛域名:*.liuju.cc

先在”私钥“这里创建一个*.liuju.cc的私钥

在”证书“页签,创建签名证书,

使用原来创建的CA进行签名

模板选择TLS_Server

在”主体“页签,配置好对应数据,选择新创建的私钥

在”扩展“页签里配置好证书的属性

类型为”最终实体“,有效期,

最主要的是配置 X509v3 Subject Alternative Name

这个主要就是我们要签名干什么的,

如果是域名,我们就写DNS:域名,

如果是泛域名,我们也写DNS,通用的地方用

比如
.liuju.cc 这样这个证书所有的以liuju.cc的域名都可以用

比如 www.liuju.cc,blog.liuju.cc都可以用这一个证书

如果是IP的类型,就写IP地址

如果:IP:10.76.99.18

在”密钥用法“页签,我们选择对应的类型,点OK后创建成功

第四步,导出签名证书,并导入至使用的服务器上

导出的类型要选择PKCS #12 chain(*.pfx)类型,这样会把对应的加密私钥也一同导出

在对应服务器安装后,才会有对应的私钥

导出pfx文件的时候,会要求输入密码,因为有私钥,所以要用密码保护

在对应服务器导入的时候,要输入这个密码才能导入成功

把文件复制到对应服务器,

然后双击_.liuju.cc.pfx

会显示证书导入向导

按向导的提示下一步就可以

选择证书的存储位置,CA证书我们要选择是”受信任的根证书颁发机构“

但是签名证书,我们可以让向导选择”根据证书类型,自动选择证书存储“

如果是签名证书,自动选择一般就是会导入到”个人“下面

这样我们在IIS里就可以新增加绑定https

输入对应的主机名,如:test.liuju.cc

并选择才导入的证书

当然这个域名我还没有通过DNS服务器解析到服务器

我们可以先在windows里修改一下host做本地解析

当然实际可以到域名提供商那里把对应DNS解析正确,效果是一样的

这样我们在客户端访问的时候,就是正常https访问了

同样,我们那个签名证书不也同样设置了IP也可以用吗

我们可以这样设置IIS,把对应IP也绑定为https

如下图这样

这样我们同样在客户端电脑用https的方式访问这个IP地址也是正常的

如下图所示

我们也可以看到这个证书在客户端的信息



至此,我们在内网用自己制做的CA证书,并给内网服务器的泛域名和IP签发证书就已经成功完成了

如果后继要给其它应用签发证书的话,

就只要重复上面的第三步就可以了。并在服务器导入就可以了。

当然前提是服务器和客户端都要导入CA证书

后续签名的证书只用在服务器端导入,不用在客户端导入。

因为客户端已经信任了CA证书,那么所有此CA签发的证书都是可以信任的

使用XCA自制CA证书并签发https证书的更多相关文章

  1. spring boot 自签发https证书

    一.使用Jdk自带的工具生成数字证书,如下: Java代码   ./keytool -genkey -v -alias tomcat -keyalg RSA -keystore /root/tomca ...

  2. 自动签发https证书工具 cert manager

    最近cert manager进行升级,不再支持0.11以下的版本了,所以进行升级.但是发现不能直接通过更改镜像版本来升级,在Apps里的版本也是旧版本,部署后发现不支持,于是自已动手,根据文档整理了一 ...

  3. 个人签发https证书

    环境: jdk1.8 window7 cmder 1.生成证书库jks keytool.exe -genkeypair -alias www.bingco.com -keyalg RSA ^ -key ...

  4. IIS8中使用OpenSSL来创建CA并且签发SSL证书

    前言 [转载]http://alvinhu.com/blog/2013/06/12/creating-a-certificate-authority-and-signing-the-ssl-certi ...

  5. 【转载】网站配置Https证书系列(一):腾讯云申请免费的SSL证书的流程步骤(即https安全连接使用的证书)

    很多网站为了安全性考虑都会上https安全连接,此时就需要考虑使用SSL证书,其实在腾讯云这边提供有免费的SSL证书申请,登录腾讯云管理控制台后,进入SSL证书管理页面,里面有个申请免费证书.腾讯云申 ...

  6. Https、OpenSSL自建CA证书及签发证书、nginx单向认证、双向认证及使用Java访问

    0.环境 本文的相关源码位于 https://github.com/dreamingodd/CA-generation-demo 必须安装nginx,必须安装openssl,(用apt-get upd ...

  7. HTTPS中CA证书的签发及使用过程

    1,HTTPS 简单来讲,HTTPS (Secure Hypertext Transfer Protocol)安全超文本传输协议就是安全的HTTP,我们知道HTTP是运行在TCP层之上的,HTTPS在 ...

  8. 自制Https证书并在Spring Boot和Nginx中使用

    白话Https一文中, 介绍了Https存在的目的和工作原理,但多是偏向于原理性的介绍,本文介绍如何一步一步自制一个能够通过浏览器认证的Https证书,并讲解在Spring Boot环境和Nginx环 ...

  9. 自制Https证书并在Spring Boot和Nginx中使用(转)

    白话Https一文中, 介绍了Https存在的目的和工作原理,但多是偏向于原理性的介绍,本文介绍如何一步一步自制一个能够通过浏览器认证的Https证书,并讲解在Spring Boot环境和Nginx环 ...

  10. CA证书扫盲,https讲解。

    很多关于CA证书的讲解. 1.什么是CA证书. 看过一些博客,写的比较形象具体. ◇ 普通的介绍信 想必大伙儿都听说过介绍信的例子吧?假设 A 公司的张三先生要到 B 公司去拜访,但是 B 公司的所有 ...

随机推荐

  1. #线段树,约数#洛谷 3889 [GDOI2014]吃

    题目 有一个长度为\(n\)的数列,现在有\(m\)组询问每次给出区间\([l,r]\),查询 \[\max_{i,j=1}^n\{gcd(a_i,a_j)[(i<l或i>r)且l\leq ...

  2. Jetty的http2模块

    启用http2模块,执行如下命令: java -jar $JETTY_HOME/start.jar --add-modules=http2 命令的输出,如下: INFO : http2 initial ...

  3. 冒泡排序的基本实现【数据结构与算法—TypeScript 实现】

    笔记整理自 coderwhy 『TypeScript 高阶数据结构与算法』课程 概念 本质:相邻元素两两比较并交换位置,使整个序列按照特定的顺序排列 特性 复杂度分析 时间复杂度: 最好情况:O(n) ...

  4. 重新整理.net core 计1400篇[五] (.net core 添加mvc 中间件 )

    前言 前面提过.net core web实际上是一个服务和若干个中间件组成. 现在我们有一个服务了,那么可想而知我们要完成mvc这种功能,我们需要的就是一个中间件. 好的,接下来,我们只要添加中间件即 ...

  5. iOS企业证书开发的APP证书过期时间监控

    大家都知道iOS的企业证书开发的APP,证书都是一年有效期,满一年得新建证书重新打包,否则无法继续使用. 我们一个企业账号下有几十个APP,一个个去看也很麻烦--搞个监控呗!!! 写个脚本放Jenki ...

  6. .NET Emit 入门教程:第六部分:IL 指令:9:详解 ILGenerator 指令方法:运算操作指令(指令篇结束)

    前言: 经过前面几篇的学习,我们了解到指令的大概分类,如: 参数加载指令,该加载指令以 Ld 开头,将参数加载到栈中,以便于后续执行操作命令. 参数存储指令,其指令以 St 开头,将栈中的数据,存储到 ...

  7. 力扣6(java)-Z字形变换(中等)

    题目: 将一个给定字符串 s 根据给定的行数 numRows ,以从上往下.从左到右进行 Z 字形排列. 比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如 ...

  8. LlamaIndex 高层次概念

    本篇内容为您快速介绍在构建基于大型语言模型(LLM)的应用程序时会频繁遇到的一些核心概念. 增强检索生成(RAG) LLM 是基于海量数据训练而成,但并未涵盖您的具体数据.增强检索生成(Retriev ...

  9. [FE] Js DOM 操作的几个常见错误

    1.setTimeout 匿名函数传参问题,匿名函数形参是不能直接在内部使用的,匿名函数传参需要按顺序从 setTimeout 的第三个参数开始依次传递. 2. Js clone出来的 dom 节点, ...

  10. [Ethereum] 浅谈加密商品市场 OpenSea 与 opensea-js

    OpenSea 是用于交易以太坊加密商品的网上商店,主要的商品是 ERC721.ERC1155 标准的 Token. 它的特色就在于,只需要一个部署好的智能合约,你就能在 OpenSea 提供的界面上 ...