自签浏览器授信 CA 证书

此服务器无法证实它就是 127.0.0.1 - 它的安全证书没有指定主题备用名称。这可能是因为某项配置有误或某个攻击者拦截了您的连接

自签 SSL 证书浏览器不授信,提示连接不安全解决办法,自签证书时增加 SAN 信息,将证书添加到受信任的根证书颁发机构

前后对比

配置前 配置后
配置前 配置后

主题备用名称(SAN)说明:

  • 主题备用名称 是证书的扩展字段,它允许证书支持多个域名或 IP 地址。对于自签证书,如果你希望它能够适用于 127.0.0.1 或 localhost,你需要在生成证书时指定这个 IP 地址或主机名。

  • 问题根源:自签证书通常只会将证书的 Common Name (CN) 字段设置为一个值(如 localhost 或 127.0.0.1),但在现代浏览器中,浏览器更偏向于检查 SAN 字段,以确保安全性。

1.创建一个 OpenSSL 配置文件

openssl.ini

[ req ]
default_bits = 2048
default_keyfile = privkey.pem
distinguished_name = req_distinguished_name
req_extensions = v3_req # 指定请求使用 v3_req 扩展
prompt = no # 不提示输入
[ req_distinguished_name ]
C = US
ST = California
L = San Francisco
O = My Company
OU = My Department
CN = localhost
emailAddress = admin@mycompany.com
[ v3_req ]
subjectAltName = @alt_names # 引用 alt_names
[ alt_names ]
DNS.1 = localhost
IP.1 = 127.0.0.1

配置文件说明

  • [ req_distinguished_name ] 部分:定义了证书的基本信息,

    • C:国家
    • ST:省份
    • L:城市
    • O:组织
    • OU:单位
    • CN:常见名称
    • emailAddress:电子邮件地址
  • [ v3_req ]:这里指定了扩展字段 subjectAltName,并引用了 alt_names 部分。

  • [ alt_names ]:定义了备用名称,DNS.1 是域名,IP.1 是 IP 地址。这里包括 localhost127.0.0.1,这样证书会为这两个名称生效。

2.生成自签证书

使用这个配置文件来生成证书和私钥:

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout private.key -out certificate.crt -config ./openssl.ini -extensions v3_req

这个命令会生成一个包含 主题备用名称(SAN) 的自签证书。

  • days 365:指定证书的有效期为 365 天。
  • nodes:表示不使用密码保护私钥。
  • newkey rsa:2048:生成一个新的 2048 位 RSA 密钥对。
  • keyout private.key:指定私钥的输出文件名。
  • out certificate.crt:指定证书的输出文件名。
  • config openssl.ini:指定自定义的 OpenSSL 配置文件。
  • extensions v3_req:指定证书包含 SAN 扩展

3.导入证书到浏览器

  • 双击 certificate.crt 文件
  • 安装证书:-> 本计算机 -> 将所有的证书都放入下列存储 -> 浏览 -> 受信任的根证书颁发机构
  • 退出浏览器后台(不是关闭标签页)
  • 重新打开访问对应网站

4.检查证书

  • 你可以使用工具如 OpenSSL 或浏览器的证书查看器来验证生成的证书是否包含正确的 SAN

使用 openssl 命令查看证书:

openssl x509 -in certificate.crt -text -noout

确保在证书信息中可以看到类似下面的部分:

X509v3 extensions:
X509v3 Subject Alternative Name:
DNS:localhost, IP Address:127.0.0.1

总结:

浏览器警告的原因是自签证书没有设置主题备用名称(SAN)。要解决这个问题,生成自签证书时需要指定 SAN,确保包括你打算访问的主机名或 IP 地址(如 localhost127.0.0.1)。

posted @   天葬  阅读(102)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 本地部署 DeepSeek:小白也能轻松搞定!
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 在缓慢中沉淀,在挑战中重生!2024个人总结!
· 大人,时代变了! 赶快把自有业务的本地AI“模型”训练起来!
· 从 Windows Forms 到微服务的经验教训
点击右上角即可分享
微信分享提示