1、生成CA证书
# 生成 CA 私钥 openssl genrsa -out ca.key 2048 # X.509 Certificate Signing Request (CSR) Management. openssl req -new -sha256 -key ca.key -out ca.csr # X.509 Certificate Data Management. openssl x509 -req -in ca.csr -signkey ca.key -sha256 -out ca.crt -days 3650 |
第二个命令执行之后需要输入各项参数,特别注意的是Organization Name (eg, company)参数,设置成不一样的,比如MyCA、MyServer、MyClient等等
2、生成服务端/客户端密匙
# 生成服务器端私钥
openssl genrsa -out server.key 2048
# 生成服务器端公钥
openssl rsa -in server.key -pubout -out server.pem
# 生成客户端私钥
openssl genrsa -out client.key 2048
# 生成客户端公钥
openssl rsa -in client.key -pubout -out client.pem
3、向上面的CA申请签名证书
# 服务器端需要向 CA 机构申请签名证书,在申请签名证书之前依然是创建自己的 CSR 文件,特别注意common name属性要设置成你需要启用https的域名,比如本地就是localhost,如果是部署到服务器,就要是对应的域名,比如open.xxxx.com
openssl req -new -sha256 -key server.key -out server.csr
# 向自己的 CA 机构申请证书,签名过程需要 CA 的证书和私钥参与,最终颁发一个带有 CA 签名的证书
openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -sha256 -out server.crt -days 3650
# 把证书导出为p12格式,需要设置导入密码
openssl pkcs12 -export -clcerts -in server.crt -inkey server.key -out server.p12
# client 端
openssl req -new -sha256 -key client.key -out client.csr
# client 端到 CA 签名
openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in client.csr -sha256 -out client.crt -days 3650
# 把证书导出为p12格式,需要设置导入密码
openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12
一般client端的证书是不需要导入的,双向认证的时候才需要,server端的导入直接双击server.p12就行了,输入密码导入:
导入成功之后,就可以在IIS中配置这个证书,启用HTTPS了:
你就看到https启用成功了