openssl生成SSL证书

一、虚构一个CA认证机构

# 生成CA认证机构的证书密钥key
# 需要设置密码,输入两次
openssl> genrsa -des3 -out ca.key 1024

# 去除密钥里的密码(可选)
# 这里需要再输入一次原来设的密码
openssl> rsa -in ca.key -out ca.key

# 用私钥ca.key生成CA认证机构的证书ca.crt
# 其实就是相当于用私钥生成公钥,再把公钥包装成证书
openssl> req -new -x509 -key ca.key -out ca.crt -days 365
# 这个证书ca.crt有的又称为"根证书",因为可以用来认证其他证书

二、生成网站的证书

# 生成自己网站的密钥server.key
openssl> genrsa -des3 -out server.key 1024

# 生成自己网站证书的请求文件
# 如果找外面的CA机构认证,也是发个请求文件给他们
# 这个私钥就包含在请求文件中了,认证机构要用它来生成网站的公钥,然后包装成一个证书
openssl> req -new -key server.key -out server.csr

# 使用虚拟的CA认证机构的证书ca.crt,来对自己网站的证书请求文件server.csr进行处理,生成签名后的证书server.crt
# 注意设置序列号和有效期(一般都设1年)
openssl> x509 -req -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt -days 365

三、文件解释

.crt/.cer 证书(Certificate)
.key      密钥/私钥(Private Key)
.csr      证书认证签名请求(Certificate signing request)
*.pem     base64编码文本储存格式,可以单独放证书或密钥,也可以同时放两个;base64编码就是两条-------之间的那些莫名其妙的字符
*.der     证书的二进制储存格式(不常用)

四、创建参考

openssl req -new -newkey rsa:2048 -nodes -keyout server.key -out server_csr.txt -subj "/C=*Country*/ST=*State or Province*/L=*Locality or City*/O=*Company*/OU=*Organizational unit*/CN=*Common Name*"

Country:             use a valid 2-letter country-code.
State or Province:   use your state or Province name, or use the Locality name if you have none.
Locality or City:    use your city, town or other locality name.
Company:             use your company/organization name or put NA (Not Applicable).
Organizational Unit: use your unit or department name or put NA (Not Applicable).
Common Name:         put your domain name here (i.e. www.nctest.info or nctest.info), put *.domain_name (i.e. *.nctest.info) if you are using a wildcard type SSL.

五、快速创建

1. 生成私钥server.key

openssl genrsa -des3 -out server.key 2048
openssl rsa -in server.key -out server.key
chmod 400 server.key

2. 生成服务认证server.crt

openssl req -new -key server.key -days 3650 -out server.crt -x509 -subj '/C=CN/ST=GuangDong/L=Shenzhen/O=CiticBank/CN=Dragonz-user/emailAddress=root@localhost' 

3. root.crt
cp server.crt root.crt
原文地址:https://www.cnblogs.com/Dragonzlx/p/13520947.html