在过去的几个小时里,我一直在尝试创建一个自签名证书,我想用它来加密计算机和家庭网络上的服务器之间的 HTTP 流量(因为我很偏执)。但是,我不确定我这样做是否正确,因为我的网络浏览器中不断收到安全警告。尤其是谷歌浏览器不喜欢我正在做的事情。
希望有经验的大侠可以指导一下。
我的服务器(Synology DiskStation)可以在内部(通过其本地 IP 地址或主机名)或通过 Internet(通过公共 IP 地址或 DNS 名称)访问。不幸的是,公共 IP 地址是动态的。但是,在我的服务器上运行的服务每 60 分钟更新一次 DNS 条目。
我所做的是使用 OpenSSL 生成自签名 X.509 证书(大部分使用默认设置)。我没有指定 CN(通用名称),因为在之前的测试中我发现它在内部访问服务器时会引起更多的安全警告。相反,我在subjectAltName
扩展字段中包含了 DNS 名称、主机名和本地 IP 地址。
我的服务器证书现在看起来像这样:https ://dl.dropbox.com/u/14454764/cert.crt
然后我继续在我的 Windows 机器上的受信任的根证书颁发机构证书存储中安装此证书。我现在可以使用 HTTPS 访问网络服务器,但并非没有警告。
错误包括:
- (谷歌浏览器)
Server's certificate does not match the URL.
(使用主机名时) - (谷歌浏览器)
The identity of this website has not been verified.
(使用本地 IP 时) - (Internet Explorer)
The security certificate presented by this website was issued for a different website's address.
(使用本地 IP 时)
每当我重新启动浏览器时,这些警告都会返回。如果我从互联网访问网络服务器(使用 DNS 名称),我的浏览器都没有抱怨,一切都很好。
我可以生成不会触发此类错误的内部使用证书吗?非常感谢您的帮助。