使用OpenSSL签发SSL证书

使用OpenSSL签发SSL证书

第一步:随机生成证书签发机构(CA)私钥

openssl genrsa -out ca_private.key 1024

第二步:将证书签发机构(CA)的公钥封装成CA证书

openssl req -new -x509 -days 30 -key ca_private.key -out ca.crt

第三步:随机生成待签发域名的私钥

openssl genrsa -out www.baidu.com.private.key 1024

第四步:生成证书签发请求文件

openssl req -new -key www.baidu.com.private.key -out www.baidu.com.csr

第五步:使用CA私钥签发证书

openssl ca -in www.baidu.com.csr -out /tmp/www.baidu.com.crt -cert ca.crt -keyfile ca_private.key

www.baidu.com.crt 就是最终签发的SSL证书,可用于部署https网站。以Nginx为例,部署https网站时需要SSL证书(www.baidu.com.crt)和RSA私钥(www.baidu.com.private.key)两个文件。

注意:OpenSSL默认配置在签发证书时,如果证书请求文件(csr)中含有中文,则在Windows上查看该证书时中文会显示乱码。

OpenSSL签发证书时遇到的问题:

1. 提示“The stateOrProvinceName field is different between ...”

解决方法:修改openssl默认配置文件(/usr/lib/ssl/openssl.cnf),根据情况将"countryName = match"这样的配置指令修改为:"countryName = supplied"。

2. 提示找不到 demoCA 文件

解决方法:需要在当前目录创建 demoCA 文件夹,并依次创建以下文件夹和文件:

demoCA
  index.txt          空文件
  index.txt.attr     空文件
  newcerts           空文件夹
  private            空文件夹
  serial             表示待签发证书的序列号,文件第一行是偶数个16进制数,如:32a6c4;第二行是空行。

...

原文地址:https://www.cnblogs.com/dgjnszf/p/12312571.html