【问题标题】:Using HTTPS with a dynamic ip使用带有动态 ip 的 HTTPS
【发布时间】:2015-01-23 22:13:10
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: ssl web dynamic-ip


    【解决方案1】:

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

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

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

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

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

    【讨论】:

    • 您好,感谢您的回答。我的问题是我没有一个域可以使用不断变化的 IP。据我了解,这需要在 ip 更改时更新 DNS 条目(例如使用 DynDNS)。是否可以将流量从 Web 服务器上的域重新路由到动态 ip?所以我可以将该域用于证书。 IP 将存储在数据库中并定期更新
    • 好吧,如果你想要HTTPS,你需要一个证书。您通常只有在拥有域时才能获得证书。我不知道是否有人会为您签署 DynDNS 域的证书。也许他们会的。如果他们这样做,您最好将您的 DynDNS 域指向您的服务器。否则,您始终可以使用自签名证书;因为无论如何这似乎都不是一个非常严肃的项目,所以这对你自己来说可能就足够了。
    • 您可以为您自己的域中的主机名获取证书,并让该主机名成为指向 DynDNS(或类似)主机名的 CNAME DNS 条目。我过去成功地做到了这一点。
    • 老实说,我想避免使用 DynDns,但这似乎是一个不错的解决方案,如果您已经拥有域名和证书,CNAME DNS 似乎也是一个很好的解决方案。如果有一个到动态 IP 的加密 http 连接(没有 dyndns),那就太好了。
    • > 这意味着,只要您的服务器只为一个 HTTPS 域提供服务,它的 IP 地址就可以随时更改;那里没有问题。 -- 嗯,'你的服务器只提供一个域名作为 HTTPS' 或'你的服务器只提供一个域名的 HTTPS 端口'?英语,我,不好。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-16
      • 2015-06-25
      • 1970-01-01
      • 1970-01-01
      • 2012-06-07
      • 1970-01-01
      • 1970-01-01
      • 2012-04-01
      相关资源
      最近更新 更多