Skip to content

OpenSSL 自签证书 实现 Chrome 安全访问(支持密码填充)

前言

Bitwarden、Marzban 这类应用强制要求开启 HTTPS,在不用域名反代的情况下,想要给 IP 申请 SSL,如果是 VPS 的话可以用 ZeroSSL 申请免费的 IP 证书;但如果是 NAS 的话,内网 IP 自然是申请不了的,只能自签证书。

不过自签证书有个问题,在浏览器访问时会显示“不安全”,尽管多点一下也可以正常访问,但是浏览器自带的密码填充功能会失灵,每次手动输入密码非常的麻烦。

Firefox 可以通过导入自签证书的方式来让站点显示“安全”,但 Chrome 即便是导入了还是“不安全”,还需要在申请证书时添加 Subject Alternative Name (SAN)

自签证书

创建 OpenSSL 配置文件

ini
[ req ]
default_bits       = 2048
distinguished_name = req_distinguished_name
x509_extensions    = v3_req
prompt             = no

[ req_distinguished_name ]
C  = CN
ST = State
L  = City
O  = MyOrg
OU = Dev
CN = 192.168.1.100

[ v3_req ]
subjectAltName = @alt_names

[ alt_names ]
IP.1 = 192.168.1.100

生成证书

sh
openssl req -x509 -nodes -days 36500 -newkey rsa:2048 \
  -keyout ip.key -out ip.crt \
  -config openssl-san.cnf \
  -extensions v3_req

浏览器导入

  1. 将刚才生成的 ip.crt 下载到本地

  2. Chrome 设置 -> 隐私和安全 -> 安全 -> 管理设备证书 -> 受信任的根证书颁发机构

  3. 点击 导入,选择 ip.crt,勾选“信任用于标识网站”

关注微信公众号
你认为这篇文章怎么样?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.1.3