IIS 服务器上的图像不遵守 HTTPS 协议

IIS 服务器上的图像不遵守 HTTPS 协议

使用 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>

相关内容