生成自签名证书-开启https

时间:2021-11-07 11:55:51

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启用成功了