前言:
有几个概念需要简单说明一下(如果说的有错误请留言,勿拍砖):
1、私钥:与公钥成对出现,个人持有。用于加密,以及解密公钥加密过得文本,使用场景如签名,解密公钥加密发送来的数据。后缀名为.key,.pfx(实际上这种格式的证书包含私钥以及公钥)
2、公钥:与私钥成对出现,发给信任的机构,用于加密信息和认证,使用场景如验证签名,密文传输数据。公钥通常都包含在证书中,所以后缀名为:.cer(windows),.crt(Linux)
3、证书:证书中一般包含签发机构信息,证书DN号等信息,再加上公钥。后缀名通常为:.pfx,.pem(与pfx类似,包含.key和.cer内容。用Base64编码的X.509 03证书),.cer,.crt,.der(二进制编码的cer/crt文件)
*有自制证书需求的同学,肯定会用到openssl。在安装openssl后,执行命令会找不到openssl配置文件的错误。这时就需要执行下面这个命令:
set OPENSSL_CONF=D:\OpenSSL-Win32\bin\openssl.cfg
openssl生成ssl证书步骤:
自制证书时主要配置,如下:
root.key:**证书私钥密码**
CountryName:CN
State or Province Name:BeiJing
LocalityName:BeiJing
Organization Name:**证书发放组织名称**
Organizational Unit Name:**证书发放组织单位名称**
Common Name:**一般写网站的域名**
Email Address:**证书发放组织邮箱**
#生成rsa私钥
openssl genrsa -des3 -out root key
#配置环境变量,制定openssl.cfg配置文件的路径
set OPENSSL_CONF=C:\cert\OpenSSL-Win64\bin\openssl.cfg
#生成CA的crt,用来签署下面的root.csr文件,有效期10年
openssl req -new -x509 -key root.key -out ca.crt -days 3650
#生成的csr文件交给CA签名后形成服务器自己的证书.重要:有一个common name可以写域名,如果为了https申请,这个必须和域名吻合,否则会引发浏览器报警
openssl req -new -key root.key -out root.csr
#输入key的密钥后,完成证书生成.-CA选项指明用于被签名的csr证书,-CAkey选项指明用于签名的密钥,-CAserial指明序列号文件,而-CAcreateserial指明文件不存在时自动生成.
#最后生成了私用密钥:root.key 和自己的SSL证书 root.crt
openssl x509 -req -days 3650 -in root.csr -CA ca.crt -CAkey root.key -CAcreateserial -out root.crt
#证书合并:
#linux
cat root.key root.crt > root.pem
#windows
copy /b /y root.key+root.crt root.pem
#合并私钥和证书到pfx文件中,使用pksc12格式
C:\cert\OpenSSL-Win64\bin>openssl pkcs12 -export -in root.pem -inkey root.key -out root.pfx
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。