使用 SSL 加载子域时出现混合内容错误

Mixed Content error when loading subdomain using SSL

我遇到了子域问题。当我使用 "https" (https://requests.fortgordon.com/login) 访问我的子域或其任何资源时,我收到 404 错误,我的所有页面资源由于 "Mixed Content" 而无法 return。

但是当我使用 "http" (http://requests.fortgordon.com/login) 访问页面时,它加载正常。

如果我直接使用 "https" (https://www.fortgordon.com/testrequest2/login) 访问子文件夹,页面加载,但所有资源都加载失败。

此外,我不确定这是否有助于解释问题,但 www.fortgordon.com 是一个 Wordpress 站点而 requests.fortgordon.com 不是。此外,我资源的所有链接都以“//”开头,因此他们可以根据当前页面选择 "http" 或 "https"。

您在页面中使用 JavaScript 动态包含资源,并且这些资源明确使用 http://。来自`

... window._wpemojiSettings = ...
{"concatemoji":"http:\/\/www.fortgordon.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.5"}};

还有一些样式表会显式加载 http://,如下所示:

<link rel='stylesheet' id='widget-calendar-pro-style-css'  href='http://www.fortgordon.com/wp-content/plugins/events-calendar-pro/src/resources/css/widget-calendar-full.css?ver=4.1.2' type='text/css' media='all' />

然后大概有广告:

<aside id="sam_pro_place_widget-9" class="widget sam_pro_place_widget">
<div id='c2262_5_1' class='sam-pro-container sam-pro-place'>
<a id='ad-5-2262' class='sam-pro-ad' 
   href='http://www.ihg.com/armyhotels/hotels/us/en/reservation?cm_mmc=IMMerch-_-MA_US_en-_-fortgordon-_-externalsite' ...

Chrome 浏览器中的控制台在尝试包含这些内容时会将它们报告为混合内容。它还会在 'Sources' 视图中显示加载这些资源的来源。

我发现了问题所在。我需要通过 WHM 添加虚拟主机记录。我登录到 WHM,单击 SSL/TLS > 在域上安装 SSL 证书。在域框中,我输入了我想要覆盖的子域,然后单击按域自动填充并在底部安装——这为带有 SSL 的子域添加了虚拟主机记录。现在一切正常!