经过实际测试
CA 根证书制作
# 创建 CA 私钥
openssl genrsa -out ca.key 2048#制作 CA 根证书(公钥)
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
注意:
CA 证书中的 Common Name 不能与 server 和 client 证书中的 Common Name 相同
在创建证书请求文件的时候需要注意三点,下面生成服务器请求文件和客户端请求文件均要注意这三点:
(1) 根证书的Common Name填写root就可以
(2) 所有客户端和服务器端的证书这个字段需要填写域名;
(3) 一定要注意的是,根证书的这个字段和客户端证书、服务器端证书不能一样;
其他所有字段的填写,根证书、服务器端证书、客户端证书需保持一致最后的密码可以直接回车跳过。
经过上面三个命令行,我们最终可以得到一个签名有效期为10年的根证书root.crt,后面我们可以用这个根证书去颁发服务器证书和客户端证书。
制作证书
# 创建私钥
openssl genrsa -out server.pem 1024
openssl rsa -in server.pem -out server.key
# 生成签发请求
openssl req -new -key server.pem -out server.csr
# 使用 CA 证书进行签发
openssl x509 -req -sha256 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650 -out server.crt
# 验证签发证书是否正确
openssl verify -CAfile ca.crt server.crt
# 制作 p12 证书(导入浏览器)
openssl pkcs12 -export -clcerts -in server.crt -inkey server.key -outserver.p12
客户端证书创建方式与服务器证书创建方式相同
nginx 配置
Nginx |
使用
Nginx |
客户端证书
SQL |
Plain Text |