openssl生成证书+安装+使用实例 (二)

转载自 https://blog.csdn.net/g1531997389/article/details/80048313

openssl生成证书主要为以下三步:

1. 生成CA证书

2. 生成Server证书

3.生成Client证书

一. 安装openssl(windows)

下载地址:http://slproweb.com/products/Win32OpenSSL.html

1.1 选择32位或者64位合适的版本下载

openssl生成证书+安装+使用实例 (二)

1.2 设置环境变量,变量值为应用安装目录下的bin目录,如C:\OpenSSL-Win64\bin

openssl生成证书+安装+使用实例 (二)

二. 证书生成

进入命令行使用openssl生成证书

openssl生成证书+安装+使用实例 (二)

2.1 CA 证书生成

创建私钥:

OpenSSL> genrsa -out ca-key.pem 2048

openssl生成证书+安装+使用实例 (二)

创建证书请求:

OpenSSL> req -new -out ca-req.csr -key ca-key.pem

openssl生成证书+安装+使用实例 (二)

创建CA自签证书

OpenSSL> x509 -req -in ca-req.csr -out ca-cert.pem -signkey ca-key.pem -days 365 

openssl生成证书+安装+使用实例 (二)

将证书导出成浏览器支持的.p12文件(在此输入的密码为证书安装时的密码)
OpenSSL> pkcs12 -export -clcerts -in ca-cert.pem -inkey ca-key.pem -out ca.p12  

openssl生成证书+安装+使用实例 (二)

创建CA证书生成的文件

openssl生成证书+安装+使用实例 (二)

2.2 Server 证书生成

创建私钥

OpenSSL> genrsa -out server-key.pem 2048

openssl生成证书+安装+使用实例 (二)

创建证书请求

OpenSSL> req -new -out server-req.csr -key server-key.pem
openssl生成证书+安装+使用实例 (二)

创建自签Server证书

OpenSSL> x509 -req -in server-req.csr -out server-cert.pem -signkey server-key.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -days 365

openssl生成证书+安装+使用实例 (二)

将证书导出成浏览器支持的.p12文件(在此输入的密码为证书安装时的密码)

OpenSSL> pkcs12 -export -clcerts -in server-cert.pem -inkey server-key.pem -out server.p12 

openssl生成证书+安装+使用实例 (二)

创建Server证书生成的文件

openssl生成证书+安装+使用实例 (二)

2.3 Client证书生成

创建私钥

OpenSSL> genrsa -out client-key.pem 2048
openssl生成证书+安装+使用实例 (二)

创建证书请求

OpenSSL> req -new -out client-req.csr -key client-key.pem
openssl生成证书+安装+使用实例 (二)

创建自签Client证书

OpenSSL> x509 -req -in client-req.csr -out client-cert.pem -signkey client-key.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -days 365
openssl生成证书+安装+使用实例 (二)

将证书导出成浏览器支持的.p12文件(在此输入的密码为证书安装时的密码)

OpenSSL> pkcs12 -export -clcerts -in client-cert.pem -inkey client-key.pem -out client.p12 

openssl生成证书+安装+使用实例 (二)

创建Client证书生成的文件

openssl生成证书+安装+使用实例 (二)

3. 证书安装与使用

3.1 安装client.p12客户端证书文件

openssl生成证书+安装+使用实例 (二)

openssl生成证书+安装+使用实例 (二)

openssl生成证书+安装+使用实例 (二)

openssl生成证书+安装+使用实例 (二)

openssl生成证书+安装+使用实例 (二)

进入客户端浏览器查看安装的证书

openssl生成证书+安装+使用实例 (二)

3.2 搭建服务器并使用证书(此处服务是为node搭建的服务器)

  1. // 加载 https 模块
  2. const https = require('https')
  3. // 加载 fs 模块
  4. const fs = require('fs')
  5. // 读取服务器**与证书
  6. const options = {
  7. key: fs.readFileSync('server-key.pem'),
  8. cert: fs.readFileSync('server-cert.pem')
  9. }
  10. // 创建服务器
  11. https.createServer(options, (req, res) => {
  12. res.writeHead(200, {'Content-Type': 'text/plain;charset=utf8'})
  13. res.write('Hello World!')
  14. res.end()
  15. }).listen(8080, () => {
  16. console.log('Server is running……')
  17. })

输入https://ip地址(域名)访问搭建的服务器,因证书是自建的,浏览器器会显示连接不安全,需将自建证书请加信任

火狐浏览器访问:

openssl生成证书+安装+使用实例 (二)

openssl生成证书+安装+使用实例 (二)

openssl生成证书+安装+使用实例 (二)