数字证书的生成和签发
- 生成服务器端的私钥
openssl genrsa -des3 -out server.key 1024
注意:
执行上面的命令会提示输入密码,用于加密私钥文件。可以使用下面的命令去除掉私钥文件的密码保护:
openssl rsa -in server.key -out server.key
- 生成服务端 CSR(Certificate Signing Request)
openssl req -new -key server.key -out server.csr -config openssl.cnf
- 生成客户端私钥和 CSR
openssl genrsa -des3 -out client.key 1024 openssl req -new -key client.key -out client.csr -config openssl.cnf
- 生成 CA 证书
CSR 文件经过 CA 签名后生成证书,可以将我们的 CSR 文件发送到可信的 CA 机构进行验证,但大多情况下需要支付费用。通过下面的方法可以生成自己的 CA 证书。
openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf
- CA 签名
Openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf Openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config openssl.cn\f
-
合并证书和私钥文件
通过上面的过程,可以得到 ca.crt、client.crt、client.key、ca.crt、server.crt、server.key 这几个文件,可以将 .crt 和 .key 合并到一个 .pem 文件:
cat client.crt client.key > client.pem cat server.crt server.key > server.pem
- 生成 PKCS12 格式证书
openssl pkcs12 -export -inkey client.key -in client.crt -out client.p12