1. 首页
  2. 系统运维
  3. Linux

使用openssl生成sha256自签名SSL证书

首先建立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。

联系我们

0574-55011290

QQ:248687950

邮件:admin@nbhao.org

工作时间:周一至周五,9:00-18:00,节假日休息

QR code