9

我的情况:我想在未知网络中的设备上运行网络服务器。端口 80 或 443 上的请求将从全局 ip 转发到此设备。

设备定期将其 IP 地址发布到 Web 上的服务器,并保存在该服务器上。

是否可以通过 https 轻松访问此设备?问题当然是,ip 可以更改并且 SSL 证书需要具有主机名。

编辑:该设备没有分配给我可以用于证书的域。是否可以使用我拥有的域并将其重新路由到动态 ip 而无需更改标头?据我了解,这将使使用 https 成为可能

4

2 回答 2

19

SSL 证书与一个 IP 地址相关联的常识具有误导性。为域名而不是 IP 地址颁发 SSL 证书。IP 地址的问题源于 HTTPS 协议的细节,也就是名称解析的问题。HTTP 服务器可以为许多不同的域托管许多不同的站点,所有站点都位于相同的端口和 IP 地址上。它根据 HTTP 标头知道正在请求哪个站点。

现在,使用 HTTPS,服务器首先需要在交换任何 HTTP 标头之前协商一个安全的 SSL 连接。因此,问题在于它不知道它应该使用哪个域的哪个证书来协商安全连接,因为它还没有机会与客户端讨论它想要访问的域。

在 HTTPS 协议的更高版本中实际上存在加密前名称协商的机制,但实际问题是旧客户端还不支持它(盯着 IE6看)。

因此,实际的解决方案是为每个 HTTPS 站点保留一个 IP 地址和/或端口,因为这样就不存在多个名称解析的问题。为一个特定的 HTTPS 站点保留一个 IP/端口,并为一个 SSL 证书扩展。

这意味着,只要您的服务器只为一个 HTTPS 域提供服务,它的 IP 地址就可以随时更改;那里没有问题。

于 2015-01-24T01:56:39.690 回答
2

动态IP没有问题。在 SSL 证书中,您存储一个静态主机名 ( domain.com),没有 IP 地址。

于 2015-01-24T01:43:57.690 回答