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位合适的版本下载


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


二. 证书生成

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


2.1 CA 证书生成

创建私钥:

OpenSSL> genrsa -out ca-key.pem 2048


创建证书请求:

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


创建CA自签证书

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


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

创建CA证书生成的文件


2.2 Server 证书生成

创建私钥

OpenSSL> genrsa -out server-key.pem 2048

创建证书请求

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

创建自签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

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

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

创建Server证书生成的文件


2.3 Client证书生成

创建私钥

OpenSSL> genrsa -out client-key.pem 2048

创建证书请求

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

创建自签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

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

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

创建Client证书生成的文件


3. 证书安装与使用

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





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


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生成证书主要为以下三步:

1. 生成CA证书

2. 生成Server证书

3.生成Client证书

一. 安装openssl(windows)

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

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


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


二. 证书生成

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


2.1 CA 证书生成

创建私钥:

OpenSSL> genrsa -out ca-key.pem 2048


创建证书请求:

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


创建CA自签证书

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


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

创建CA证书生成的文件


2.2 Server 证书生成

创建私钥

OpenSSL> genrsa -out server-key.pem 2048

创建证书请求

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

创建自签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

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

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

创建Server证书生成的文件


2.3 Client证书生成

创建私钥

OpenSSL> genrsa -out client-key.pem 2048

创建证书请求

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

创建自签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

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

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

创建Client证书生成的文件


3. 证书安装与使用

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





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


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地址(域名)访问搭建的服务器,因证书是自建的,浏览器器会显示连接不安全,需将自建证书请加信任

火狐浏览器访问:




猜你喜欢

转载自blog.csdn.net/m0_37329910/article/details/88593913