我的情况:我想在未知网络中的设备上运行run服务器。端口80或443上的请求将从全局ip转发到此设备。
该设备定期将其IP地址发布到web上的服务器,并将其保存在此服务器上。
有没有可能很容易通过https访问这个设备?当然,问题是ip可能会改变,SSL证书需要有一个主机名。
编辑:该设备没有分配给它的域,我可以将其用于证书。是否有可能使用我拥有的域,并将其重新路由到动态ip,而不更改报头?据我所知,这将使使用https成为可能
发布于 2015-01-24 09:56:40
通常将SSL证书与一个IP地址相关联是一种误导。为域名而不是IP地址颁发SSL证书。IP地址的问题源于HTTPS协议的细节,即名称解析问题。HTTP服务器可以为许多不同的域托管许多不同的站点,所有站点都在相同的端口和IP地址上。它根据HTTP标头知道正在请求哪个站点。
现在,使用HTTPS,服务器首先需要协商一个安全的SSL连接,然后才能交换任何HTTP报头。因此,问题是它不能知道它应该使用哪个域的哪个证书来协商安全连接,因为它还没有机会与客户端讨论它想要访问的域。
在HTTPS协议的较新版本中,实际上有在加密之前进行名称协商的机制,但实际问题是,较老的客户端还不支持它(请看IE6)。
因此,实际的解决方案是为每个HTTPS站点保留一个IP地址和/或端口,因为这样就不会出现多个名称解析的问题。为一个特定的HTTPS站点保留一个IP/端口,为一个SSL证书保留一个扩展。
这意味着,只要您的服务器只为一个HTTPS域提供服务,它的IP地址就可以随时更改;这是没有问题的。
发布于 2015-01-24 09:43:58
动态IP没有问题。在SSL证书中,您存储静态主机名(domain.com),而不存储IP地址。
https://stackoverflow.com/questions/28119588
复制相似问题