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

本文详细介绍了在Windows上安装OpenSSL,以及如何生成和使用CA、Server和Client证书的过程,包括设置环境变量、创建证书请求、自签证书、导出.p12文件,并提供了Node.js服务器配置证书的示例。

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

火狐浏览器访问:




评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值