我有一个在 Windows 10 上运行的 SCADA 应用程序,并且该应用程序已配置自己的网站。它已为本地 IP 颁发了安全证书。到目前为止一切都很好。
但是,为了从其他地方访问网站,我们需要将请求从外部 IP 转发到本地地址,因此现在 IP 与证书中的 IP 不匹配,因此无法正常工作。在这种情况下,正确的解决方法是什么?我无法解决这个问题。我可以向外部 IP 颁发证书,但本地网络证书不起作用。
答案1
您可以发出多个名称的单一证书或地址 – 只需在“主题备用名称”字段(又名 subjectAltName 或 SAN)中列出所有地址即可。目前所有 CA 都支持此功能,并且不需要 Web 服务器提供任何特殊支持。
我也会创造DNS 条目为您的 Web 应用添加域名,以便您可以使用域名访问它。如果您的网络使用 DNS“视图”,那么您可以轻松地将同一个域名解析为外部的公共地址或内部的内部地址 - 证书只需要一个名称,您只需要为一个 URL 添加书签。
最后,通过端口转发允许任何外部访问你的 Web 应用听起来是个坏主意根本。(说实话,这听起来像是不速之客的主要目标。)避免端口转发和使用企业 VPN远程访问 Web 应用程序可能更安全和可以避免两个不同地址的问题,因为您始终只访问内部地址。
1处理 subjectAltName 时要注意几个常见错误,尤其是当您的 CA 运行手动openssl
脚本时……
SAN 字段必须包含您已在“CN=”字段中输入的名称。(这两个字段不会自动合并 - 当证书具有 SAN 列表时,浏览器将完全忽略 CN= 属性。)
SAN 字段区分 DNS 名称和 IP 地址 - 确保您的 CA 为每个值设置正确的类型。如果您使用 OpenSSL,请使用
IP:1.2.3.4
而不是DNS:1.2.3.4
。