流程
一般证书是证书机构(ca)签发的,如申请域名后一般会有一个证书,一般是收费的。
如果使用openssl生成免费的服务器端与客户端证书的话,步骤流程如下:
- 1、生成ca证书
- 2、生成服务器端证书签发申请文件(csr文件),并用ca证书签发,生成服务器端证书crt文件
- 3、生成客户端证书签发申请文件(csr文件),并用ca证书签发,生成客户端端证书crt文件
准备工作
下载安装openssl,并配置环境变量
【下载】
操作过程
生成ca证书
- 生成根证书私钥(key文件)
genrsa -des3 -out ca.key 2048
# 长度为2048 - 生成证书签到请求文件ca.csr
openssl req -new -key ca.key -out ca.csr
如果出现下面的异常,重启cmd即可
- 自签署证书生成ca.crt
openssl x509 -req -sha256 -days 3650 -in ca.csr -signkey ca.key -out ca.crt
生成server.crt 证书
- 1、证书私钥(key文件)
genrsa -out server.key 2048
# 长度为2048 - 2、生成证书签到请求文件server.csr
openssl req -new -key server.key -out server.csr
- 3、用ca证书签发server.crt
openssl x509 -req -sha256 -days 3650 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt
生成client.crt 证书
- 1、证书私钥(key文件)
genrsa -out client.key 2048
# 长度为2048 - 2、生成证书签到请求文件server.csr
openssl req -new -key client.key -out client.csr
- 3、用ca证书签发client.crt
openssl x509 -req -sha256 -days 3650 -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt
结果如下示:
对于 IIS 的设置
在 IIS 中,需要的是一个 PFX 文件,这个文件需要包含 key 和 crt。生成方法如下:
输入 key 和 crt 文件,输出 pfx 文件。openssl pkcs12 -export -inkey server.key -in server.crt -out server.pfx
执行上述命令时,会要求输入一个 export 密码。 该密码在导入 pfx 文件时需要。
在 IIS 中选择“导入证书”,文件选择该 pfx 文件,密码填写导出时的密码,导入位置选择“个人”。
如要修改证书的 friendly name ,则在证书管理中修改(需要从 mmc 中打开计算机级别的证书管理器)