«

快速使用 Openssl 生成本地 SSL 证书

时间:2026-8-1 02:18     作者:独元殇     分类: 开发相关


欢迎关注我的公众号,名叫「串串狗小刊」

自签名 SSL /TLS 证书,在我们开发和运维时,都非常的重要!这篇文章是我去年春天,看 Setting up a trusted, self-signed SSL/TLS certificate authority in Linux 写的笔记。在我后续开发应用,本地测试时非常有用!

超级简单,你也可以直接把下面的内容喂给 AI !

教科书上写的,使用 Linux 里的 openssl 命令生成一个这种证书,非常简单:

openssl req -x509 -sha256 -days 3650 \
  -key rootca.key \
  -out rootca.crt \
  -config rootca.conf

敲一下回车,就得到了 cert.key 和 cert.crt 两个文件。

这个文件当然好,但是浏览器不信任它!因为自签名证书只用于私人测试,生产环境这么搞会容易受到中间人攻,击而不安全, 怎么办?法修先打!我们自己搞证书颁发机构(CA)!

怎么能让浏览器信任!

命令是:

# 生成私钥和证书
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 -out rootca.key
openssl req -x509 -key rootca.key -out rootca.crt -subj "/CN=my-ca/O=my-ca"

# 再为创建的证书生成私钥
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:4096 -out localhost.key

里面的 my-ca 是我们自己取的名字,自定义,随便。

然后我们创建一个文件:

[文件名: csr.conf]

[req]
distinguished_name = dn
prompt             = no
req_extensions = req_ext

[dn]
CN="localhost"

[req_ext]
subjectAltName = @alt_names

[alt_names]
DNS.0 = localhost

然后敲命令,该文件将传递后续的内容:

# 创建证书签名请求文件
openssl req -new -key localhost.key -out localhost.csr -config csr.conf

# 自己颁发机构获取签名证书 localhost.crt 和 localhost.key ,哈哈
openssl x509 -req -days 365 -extensions req_ext -extfile csr.conf -CA rootca.crt -CAkey rootca.key -in localhost.csr -out localhost.crt

然后它会生成一个 localhost .crt 文件,这个就是我们自己的证书了!还有私钥 localhost .key。

这样,我们就等于自己搞了一个私人的 CA 证书公司了。

但是,我们还得有个本地网站试试水。启动一个 Localhost 的 HTTPS 服务器,然后测试一下!

比如在 Chrome 里。

img

去 “设置”->“隐私与安全”->“安全”->“管理证书” ,这里有个授权机构标签页。我们导入那个 crt 。

img

之后我们的 HTTPS 就 不会报错 了!

img

哈哈,爽吧!

标签: 原创 SSL