为什么托管服务提供商不允许通过端口 443 使用 SSL?

web*_*opf 18 linux ssl apache-2.2

我正在建立一个网站并为该网站的域购买了 SSL 证书。当我问托管公司为什么https://www.example.com拒绝连接时,他们回答说 SSL 访问是在端口 41696 上配置的。当然,https://www.example.com:41696按照他们的承诺工作,但这真的不是我想用于面向客户的网站的 URL。

托管公司还表示,即使我们获得不同的套餐,他们也无法将其更改为 443。我从未从与我合作过的任何其他托管服务提供商那里听说过。他们是否有充分的理由不让这种情况发生?或者我可以在服务器上更改任何配置以使其接受端口 443 上的 HTTPS 请求?

Mil*_*les 28

历史上,HTTPS需要每个站点/证书的专用 IP,因为浏览器需要在发送Host标头之前验证证书。您的托管服务提供商可能会改用专用端口,以节省 IP。

然而,如今几乎所有现代浏览器都支持Server Name Indication,它允许在同一 IP 和端口上虚拟托管多个 HTTPS 站点,因此即使这样也不再是一个特别好的理由。如果这是共享托管服务,则不太可能进行任何配置更改以使您的站点在默认端口上可用。

  • 只是为了完整起见,所有主要浏览器都支持 SNI,但许多业务工具、较旧的应用程序服务器甚至一些现代库都不能正确支持 SNI。请务必对此进行研究并根据您的特定用例获取事实。 (7认同)
  • @Daniel 在我看来,在 2016 年这样做是“奇怪的”。相应的 [RFC](https://www.ietf.org/rfc/rfc3546.txt) 可追溯到 2003 年 6 月 (!) 这些是 _13 年_。(是的,我知道在征求意见和实际实施之间需要一些时间,但如果这就是提供者的环境看起来如此的原因,那么这是太多时间(在我看来)。) (5认同)

gf_*_*gf_ 9

tl;dr:切换提供商,这个似乎有点奇怪。


他们是否有充分的理由不让这种情况发生?

取决于人们认为“一个很好的理由”,但在我看来:不。

或者我可以在服务器上更改任何配置以使其接受端口 443 上的 https 请求?

如果提供商阻止/过滤访问,很遗憾,您对此无能为力。


Gun*_*ohm 7

可能的解释:

至少有一些供应商向您出售具有不同 IPV6 地址但共享 IPV4 地址的虚拟机。一个例子是这样的(此链接绝不应被视为一种认可或广告)。你通常会得到一些端口转发,但它们是基于 TCP 的(没有 SNI、HTTP 主机头或任何东西),所以端口号是选择“你的”主机的唯一方法。

随着 IPV4 地址变得越来越稀少,这是节省它们的一种方法。

如果该网站是为资金很少的慈善机构或类似组织提供的,并且您绝对必须坚持尽可能低的价格,您可以设置一个免费的 cloudflare 计划,将 your-domain.com:443 转发到您的 41696 端口。

如果没有,请换一个主机。

  • 在这种情况下,使用 SNI 转发 HTTPS 很容易(例如使用 haproxy);如果提供者不这样做,那么他们要么懒惰,要么无能。无论哪种方式,您都不想给他们钱。 (5认同)