首先建立ca
生成 RSA 密钥对:
openssl genrsa -out ca.key 2048
若想对私钥进行加密可以加上 -des3 参数
生成 ca crt:
openssl req -new -x509 -days 365 -key ca.key -out ca.crt
站点证书的生成
生成证书的RSA 密钥(当然你要是很懒同时测试使用,也可以直接使用CA的KEY)
openssl genrsa -out xxx.key 2048
生成csr证书(假设需要签SSL证书的域名为: nbhao.org):
openssl req -new -key xxx.key -sha256 -out xxx.csr
注:使用 -sha256 将采用sha256加密,openssl默认采用sha1加密,而现代已将 sha1 加密方式认定为非安全,故使用sha2。
检查 csr 的正确性:
openssl req -in xxx.csr -text
检查其中 Signature Algorithm 是不是 sha256WithRSAEncryption。
利用 ca 生成 crt:
openssl x509 -req -days 365 -in xxx.csr -CA ca.crt -CAkey ca.key -sha256 -out xxx.crt
如果和我一样报这个错误
Getting CA Private Key ca.srl: No such file or directory 27710:error:02001002:system library:fopen:No such file or directory:bss_file.c:356:fopen('ca.srl','r') 27710:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:358:
命令中添加参数 -CAcreateserial -CAserial ca.seq
例如:
openssl x509 -req -days 3000 -in blog.nbhao.org.csr -CA ca.crt -CAkey ca.key -CAcreateserial -CAserial ca.seq -sha256 -out blog.nbhao.org.crt
检查 crt 的正确性:
openssl x509 -in xxx.crt -text
同样检查 Signature Algorithm 是不是sha256WithRSAEncryption。