OpenSSL生成自签名证书备忘录

1. openSSL生成自签名与nginx配置流程

js 复制代码
// 生成私钥
openssl genpkey -algorithm RSA -out private.key -pkeyopt rsa_keygen_bits:2048
// 使用生成的私钥,生成一个证书请求文件
openssl req -new -key private.key -out csr.pem
// 使用生成的私钥和证书请求,生成自签名证书
openssl x509 -req -in csr.pem -signkey private.key -out public.crt -days 365

运行上述命令后,可以在当前文件夹下看到证书,证书请求和私钥

在nginx中配置:

再次启动,可以打开https站点。

2. 流程QA

Q: key, crt, pem文件分别是什么

key文件为私钥文件,根据openssl genpkey命令生成。后续需要由该私钥生成公钥,并写入证书。

PEM文件是一种被广泛使用的文件格式,其中包含了CRT文件中的信息。PEM文件通常是BASE64编码的文本文件,并具有以下扩展名:.pem、.crt、.cer和.key。PEM文件可以包含多个证书,每个证书由BEGIN CERTIFICATE和END CERTIFICATE标记包裹。

CRT文件是SSL证书的基本文件格式,也称为X.509证书。它包含服务器的公钥、证书颁发机构(CA)的数字签名和证书序列号。当客户端与服务器建立SSL连接时,服务器将使用其私钥解密数字签名,以证明服务器的身份。这样,客户端就可以验证服务器是否可信。

查看证书内容命令:

js 复制代码
openssl x509 -in public.crt -noout -text

Q: key, crt文件在https流程中的作用

生成的key作为服务器SSL解码的私钥,和证书中的公钥对应。在https连接中,服务器将证书(包括公钥)发送给浏览器,浏览器自己也生成一套公钥和私钥,并将自己的公钥发送给服务器。

这样,服务器和浏览器都有了对方的公钥,发送的信息对用对方的公钥加密,接收到的消息都用自己的私钥解密,便保障了信息传输的安全性。

在https的资源耗时中,可以看到SSL一项,便包括了资源发送的加解密耗时。

Q: 使用自签名证书浏览器识别不了怎么办

看了下,网上大概的解决方案是把自签名证书导入浏览器信任的证书里 ,但是尝试了,失败不生效。

最终还是没有找到很好的解决方案,只能手动授权进入页面,生产环境还是需要使用CA机构授权认证的证书才行。

相关推荐
2501_9160088913 小时前
iPhone 设备信息查看,用 KeyMob 看型号、序列号、电池健康和 UDID
android·ios·小程序·https·uni-app·iphone·webview
枫叶轻语1 天前
【Nginx 从入门到实战 09】前后端统一入口:部署页面与接口的完整配置
nginx·全栈
无言听风雨丶1 天前
Nginx 深度实战:从架构原理到生产排错
运维·nginx·架构
xxwl5851 天前
Nginx 基础学习笔记
笔记·学习·nginx
fb_123451 天前
K8s StatefulSet五大有状态集群实战_Nginx_Etcd_Redis_Cassandra_MySQL
nginx·kubernetes·etcd
acd120092 天前
域名解析缓存带来的隐性故障,很多排查都漏掉了这一层
java·运维·nginx
枫叶轻语2 天前
【Nginx 从入门到实战 07】root 与 alias:资源路径到底怎样对应?
nginx·全栈
acd120092 天前
Nginx 反向代理的缓冲区坑:后端响应大时接口偶发 502
java·运维·nginx
Thanks_ks2 天前
常见 HTTP 状态码的坑:301/302、401/403、500/502 之间差的那一个词
计算机网络·nginx·http·面试·状态码·后端开发·浏览器缓存
李纲明2 天前
WordPress 登录后跳回登录页或提示「Cookie 被阻止」:先核站点 URL 与 HTTPS 一致,再查安全插件与 CDN
https·登录·cdn·wordpress·cookie·devdiy·站点url