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
浏览器导入
将刚才生成的
ip.crt
下载到本地Chrome 设置 -> 隐私和安全 -> 安全 -> 管理设备证书 -> 受信任的根证书颁发机构
点击 导入,选择
ip.crt
,勾选“信任用于标识网站”