使用 HTTPS 连接时,我们收到以下警告:
“您的连接已使用 128 位加密技术加密。但是,此页面包含其他不安全的资源。”
问题:我们将问题缩小到 SSL 页面上的图像。如果我们将 SSL URL 粘贴到浏览器中,它会重定向到非 SSL 连接。
例如:我们粘贴“https://www.example.com/images/checkout.gif ”到浏览器中,它会立即重定向到“http://www.example.com/images/checkout.gif "
我们正在运行以下服务器规格:
服务器:Windows Server 2003 Web 版
IIS 版本:6.0
我们已经检查了配置设置并且一切正常。
编辑:我们在本地服务器上尝试了同样的问题,重定向没有发生。使用“HttpFox” Firefox 插件,我们看到在生产服务器上收到了从 https 到 http 的 302 重定向。当我们在本地服务器上执行相同的测试时,302 重定向没有发生。检查两台服务器上的 IIS 6 配置没有发现任何差异。
答案1
需要更多信息,因此可能是时候打破差分机了。
从 microsoft.com 获取 Web 部署工具 (MSDEPLOY),并从正在运行的 Web 服务器创建一个包。
然后,执行 msdeploy -verb:sync 与 -whatif 来将包与生产服务器进行比较,并揭示配置中的差异。
如果没有差异,它们的表现将完全相同。事实并非如此,所以有一个,只是它不在您迄今为止所看到的位置。
答案2
事实证明,问题是由我们不知道的 SSL 模块引起的。有问题的模块名为安全网页。我们必须向组件添加额外的路径,以确保图像、脚本和样式也能以 https 形式出现。我们将配置文件从...
<secureWebPages enabled="true" xdt:Transform="Insert">
<directory path="/checkout" />
</secureWebPages>
到 ...
<secureWebPages enabled="true" xdt:Transform="Insert">
<directory path="/images" ignore="true" />
<directory path="/styles" ignore="true" />
<directory path="/scripts" ignore="true" />
<directory path="/checkout" />
</secureWebPages>