为何通过域名访问网站显示HTTPS,通过静态IP访问时却显示HTTP
核心原因通俗解释
- SSL证书是绑定域名的,不是绑定服务器IP的。你申请HTTPS所需的SSL证书时,仅会对你的域名做授信,当你用IP访问站点时,证书无法匹配到对应的授信主体,服务器不会主动触发HTTPS加密链路,默认就走HTTP协议。
- 站点服务的配置规则差异。你参考教程给WordPress配置HTTPS时,只会给你的域名单独配置SSL证书加载、HTTP跳HTTPS的规则;访问IP时匹配的是服务器默认的站点配置,这套配置你没有额外添加HTTPS相关设置,自然就走80端口的HTTP服务。
- WordPress本身的配置逻辑限制。你配置HTTPS时肯定已经把WordPress后台的
站点地址(URL)和WordPress地址(URL)改成了带HTTPS的域名,只有访问这个域名时才会触发HTTPS跳转逻辑,IP和预设的站点地址不匹配,就不会走HTTPS。
补充说明
不用特意给IP也配置HTTPS,公网IP没法申请免费的普通SSL证书,付费IP证书成本很高,就算硬配置了,浏览器访问也会报证书不安全的错误。如果你不想让用户通过IP访问,可以在服务器配置里加一条规则,所有IP访问的请求直接301跳转到你的HTTPS域名即可。
内容的提问来源于stack exchange,提问作者Ankit gupta
相关产品推荐
相关产品推荐

