通过专用网络进行 HTTPS

通过专用网络进行 HTTPS

我的 Web 服务器在 LAN 上运行(这意味着,我没有公共 IP 地址(域名)可以提供给证书颁发机构,以便 SSL 为我工作)。我的 IP 是私有 IP(10.100.10.239),但服务是通过 ISP(我的 LAN 通过某种我不知道的方式连接到 ISP)提供给我的分支机构客户的。那么,是否可以在我的 Web 服务器(具有私有 IP 地址的 Web 服务器)上实施 SSL?如果可以,该怎么做?

谢谢。

答案1

正如 Darth 提到的,SSL 证书依赖于 FQDN(完全限定域名)而不是 IP 地址。

因此,问题变成了,您是否为此服务器实施了内部 DNS,以便无论其主机名是什么,都可以在您的域中解析?例如,如果您的域名是 example.com,而您的 Web 服务器名为 web,如果您对 web.example.com 进行 DNS 查找,它会解析吗?需要明确的是,由于您声明这一切都是在私人网络上,而不是面向公众的网络上,因此您需要在内部而不是外部检查这些 DNS 记录(使用 Win 计算机上的 nslookup,或使用 *nix 计算机上的 dig)。

假设您在内部使用 DNS 记录,那么您可以从 Web 服务器为 FQDN web.example.com 生成 CSR(证书签名请求)。您将此 CSR 提供​​给您选择的证书颁发机构,他们将生成 SSL 证书,然后您将该证书安装到您的 Web 服务器中。

或者,根据“是否”存在更大的内部证书需求,您可以创建自己的 CA 并颁发自己的证书。还需要一个额外的步骤,即需要将您的 CA 证书发布到所有内部计算机的浏览器,以便它们识别 SSL 证书的颁发者并且不会收到证书警告。这将需要做更多的工作,而且只有当您将 CA 基础设施用于其他需求时才真正值得。

最后但并非最不重要的一点,正如 Santeador 提到的那样,您可以从服务器本身创建自签名证书,您的用户只需信任该证书即可。自签名证书的缺点是没有证书链可以验证其颁发,因此这完全取决于您希望的安全性。

补充:时机就是一切。我读了一些资料,发现如果你想走自签名路线,这篇文章可能会对你有所帮助(假设你在运行 Apache 而不是运行 IIS 的 Linux 上):
http://www.tecmint.com/enable-ssl-for-apache-on-centos/

答案2

SSL 证书不关心 IP 地址,只关心主机名(域名)。签署您拥有的任何主机名,他们使用该主机名访问您的网络服务器(假设您拥有该主机名)

相关内容