ELB上的HTTPS到HTTP IIS后端服务器报告不安全消息
我不完全确定这是否是我的问题的正确措辞,但在我们的环境中,标准是使用接受HTTPS流量的AWS ELB并执行ELB级别的SSL终止。从那里,ELB和Web服务器之间的所有流量都使用常规HTTP完成。这种配置似乎对我们在apace或nginx上运行的Web服务器运行良好,但我需要为我们的一台IIS服务器使用相同的格式,并且它似乎给我带来一些问题。ELB上的HTTPS到HTTP IIS后端服务器报告不安全消息
我可以击中ELB并访问网站,但它在URL栏中给我一个“不安全”的消息。上的安装的一些背景信息是如下:
- ELB与HTTPS一个监听器(443),以实例协议创建/端口HTTP安装在ELB
- 相同的SSL证书(80)
- 通配符SSL证书安装了IIS服务器上
- HTTP(80)的IIS网站上绑定集(证书设置为通配符证书的CN的友好名称)
我发现关于URL重写模块HTTP重定向多个职位到HTTPS t我不确定这是我想做的事情。我们的ELB和IIS服务器位于安全的VPC中,所以对HTTP(IIS网络服务器)的HTTPS(在ELB上)很好。我想如果我使用的URL重写方法与卸载SSL到Web服务器相同?
实施URL Rewrite Module 2.0规则以基于URL模式重定向并不意味着将SSL卸载到IIS,并且您不需要在已将您的证书上载到ELB的IIS上安装SSL证书。
上安装IIS URL重写后,通常你会写在你的Web.config
重写规则如下:
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_X_FORWARDED_PROTO}" pattern="^http$" ignoreCase="false" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
</rules>
<outboundRules>
<rule name="Add Strict-Transport-Security when HTTPS" enabled="true">
<match serverVariable="RESPONSE_Strict_Transport_Security" pattern=".*" />
<conditions>
<add input="{HTTPS}" pattern="on" ignoreCase="true" />
</conditions>
<action type="Rewrite" value="max-age=31536000" />
</rule>
</outboundRules>
</rewrite>
</system.webServer>
您可能会发现关于如何解决证书错误here其他有用的信息。
当您访问HTTPS网站时,如果需要加载的某些其他资源(如图像,CSS文件,JS文件等)来自HTTP位置,则您的浏览器将会/可能会抱怨连接不安全。
使用Web浏览器的开发工具,看看是否有任何连接正在进行(返回到您的服务器或另一台服务器),而不是HTTPS。
看起来我的问题实际上是证书和我使用的DNS名称的问题。我们使用通配符SSL证书(即* .example.com),我的ELB的CNAME记录被设置为类似test01.stage.example.com。
一旦我将CNAME记录更改为test01.example.com并从IIS服务器中删除了ssl证书,一切正常。我对通配符证书有点误解。我只是假设* .example.com会抓住任何东西,即使它是第三或第四级域名。