转载自 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搭建的服务器)
-
// 加载 https 模块
-
const https =
require(
'https')
-
// 加载 fs 模块
-
const fs =
require(
'fs')
-
// 读取服务器密钥与证书
-
const options = {
-
key: fs.readFileSync(
'server-key.pem'),
-
cert: fs.readFileSync(
'server-cert.pem')
-
}
-
// 创建服务器
-
https.createServer(options, (req, res) => {
-
res.writeHead(
200, {
'Content-Type':
'text/plain;charset=utf8'})
-
res.write(
'Hello World!')
-
res.end()
-
}).listen(
8080, () => {
-
console.log(
'Server is running……')
-
})
输入https://ip地址(域名)访问搭建的服务器,因证书是自建的,浏览器器会显示连接不安全,需将自建证书请加信任
火狐浏览器访问: