转载自 https://blog.csdn.net/g1531997389/article/details/80048313
openssl生成证书主要为以下三步:
1. 生成CA证书
2. 生成Server证书
3.生成Client证书
下载地址:http://slproweb.com/products/Win32OpenSSL.html
进入命令行使用openssl生成证书
创建私钥:
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
OpenSSL> pkcs12 -export -clcerts -in ca-cert.pem -inkey ca-key.pem -out ca.p12
创建CA证书生成的文件
创建私钥
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证书生成的文件
创建私钥
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证书生成的文件
进入客户端浏览器查看安装的证书
-
// 加载 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地址(域名)访问搭建的服务器,因证书是自建的,浏览器器会显示连接不安全,需将自建证书请加信任
火狐浏览器访问: