使用 openssl 生成自签证书。用于程序测试。
检查 openssl : 1 2 $ openssl version OpenSSL 1.0.2k-fips 26 Jan 2017
创建三个目录:
1 mkdir root server client
预定义好证书信息:
1 SUBJ="/C=CN/ST=Guangxi/L=Cenxi/O=cststudio/OU=cststudio/CN=cststudio.com.cn"
SUBJ 释义:
1 2 3 4 5 6 7 字段 含义 本文示例 /C= Country 国家 CN /ST= State or Province 省 Guangxi /L= Location or City 城市 Cenxi /O= Organization 组织或企业 cststudio /OU= Organization Unit 部门 cststudio /CN= Common Name 域名或IP cststudio.com.cn
根证书 1 2 3 4 5 6 7 8 9 10 11 12 13 14 cd root # 生成RSA私钥 pass指定密码 openssl genrsa -des3 -passout pass:1qaz@WSX -out root.pass.key 2048 # 删除私钥中的密码 openssl rsa -passin pass:1qaz@WSX -in root.pass.key -out root.key rm -f root.pass.key # 生成 CSR(Certificate Signing Request,证书请求文件) openssl req -new -key root.key -out root.csr -subj "$SUBJ" # 生成根证书,-days指定为10年 openssl x509 -req -days 3650 -CAcreateserial -in root.csr -signkey root.key -out root.crt
最终文件:
1 2 $ ls root.crt root.csr root.key
服务证书 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 cd ../server/ # 生成RSA私钥 pass指定密码 openssl genrsa -des3 -passout pass:1qaz@WSX -out server.pass.key 2048 # 删除私钥中的密码 openssl rsa -passin pass:1qaz@WSX -in server.pass.key -out server.key rm -f server.pass.key # 生成 CSR(Certificate Signing Request,证书请求文件) openssl req -new -key server.key -out server.csr -subj "$SUBJ" # 生成crt证书,-days指定为10年 openssl x509 -req -days 3650 -CAcreateserial -CA ../root/root.crt -CAkey ../root/root.key -in server.csr -signkey server.key -out server.crt
最终文件:
1 2 $ ls server.crt server.csr server.key
客户证书 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 cd ../client/ # 生成RSA私钥 pass指定密码 openssl genrsa -des3 -passout pass:1qaz@WSX -out client.pass.key 2048 # 删除私钥中的密码 openssl rsa -passin pass:1qaz@WSX -in client.pass.key -out client.key rm -f client.pass.key # 生成 CSR(Certificate Signing Request,证书请求文件) openssl req -new -key client.key -out client.csr -subj "$SUBJ" # 生成crt证书,-days指定为10年 openssl x509 -req -days 3650 -CAcreateserial -CA ../root/root.crt -CAkey ../root/root.key -in client.csr -signkey client.key -out client.crt openssl pkcs12 -export -passout pass:123456 -clcerts -in client.crt -inkey client.key -out client.p12
最终文件:
1 2 $ ls client.crt client.csr client.key client.p12
参考:https://www.cnblogs.com/mufeng3421/p/13896400.html https://blog.csdn.net/baidu_19338587/article/details/78489028