使Edge浏览器信任自签证书,以基于IP地址托管的网站为例
·
情景:当我们使用IP地址自建网站时,如gitlab、gitea等web服务时,即使添加了自签证书,浏览器也不会信任,像下面这样:


如上图所示,即使你将服务器证书下载下来,导入到根证书也无济于事。根本的原因是生成证书的时候缺少了SAN(Subject Alternative Name)字段,下面教大家如何生成具备具有SAN字段的证书,这样的证书生成后可以被浏览器信任。下面在Ubuntu系统中操作
1.创建 OpenSSL 配置文件
在你的证书目录,新建一个openssl.cnf文件,写入以下内容,填入你服务器的IP地址
[ req ]
distinguished_name = req_distinguished_name
x509_extensions = v3_req
prompt = no
[ req_distinguished_name ]
CN = 你服务器的IP地址
[ v3_req ]
subjectAltName = @alt_names
[ alt_names ]
DNS.1 = 你服务器的IP地址
IP.1 = 你服务器的IP地址
2. 生成证书和私钥
生成一个有效期100年的自签证书
openssl req -new -newkey rsa:2048 -days 36500 -nodes -keyout selfsigned.key -out selfsigned.csr -config openssl.cnf
3. 生成自签名证书
接下来,使用生成的 CSR 和私钥生成自签名证书selfsigned.crt
openssl x509 -req -in selfsigned.csr -signkey selfsigned.key -out selfsigned.crt -days 36500 -extfile openssl.cnf -extensions v3_req
4. 验证生成的证书
可以通过以下命令检查证书内容,看看有没有SAN信息
openssl x509 -in selfsigned.crt -text -noout
应该看到以下内容
X509v3 Subject Alternative Name:
DNS:你的IP地址, IP Address:你的IP地址
5.生成完证书后,别忘了在web服务正确配置证书的路径及文件名
6.配置了证书和文件名后,别忘了把证书目录的权限改成web服务的用户的权限,不然可能无权限访问证书目录
7.改好了,别忘了将你的web服务重启
8.下载证书及安装
把selfsigned.crt文件下载下来,然后在windows+r 输入 certmgr.msc,打开证书配置页面


受信任的根证书颁发机构->所有任务->导入
导入你下载的证书文件并导入根证书位置

可以看到导入了一个以IP地址为名称的证书:

此时重启浏览器,访问我们部署的以IP地址为域名的网站,发现浏览器已经添加信任了
![]()
问题解决
更多推荐
所有评论(0)