当前位置: 首页 > 知识库问答 >
问题:

ELB的HTTPS向HTTP IIS后端服务器报告不安全的消息

邵赞
2023-03-14

我不太确定这是否是我的问题的正确措辞,但在我们的环境中,标准是使用接受HTTPS流量的AWS ELB,并在ELB级别进行SSL终止。从那里,ELB和web服务器之间的所有流量都是使用常规HTTP完成的。这种配置似乎对运行在apace或nginx上的web服务器很有效,但是我需要对我们的一个IIS服务器使用相同的格式,这似乎给我带来了一些问题。

我可以点击ELB并访问网站,但它在URL栏中给我一条“不安全”消息。有关设置的一些背景信息如下:

  • 使用HTTPS侦听器(443)创建的ELB到实例协议/端口HTTP(80)
  • ELB上安装的通配符SSL证书
  • IIS服务器上安装的相同SSL证书(证书的友好名称设置为通配符证书的CN)
  • IIS网站上的http(80)绑定集

我发现了多篇关于URL重写模块将HTTP重定向到HTTPS的帖子,但我不确定这是我想要做的。我们的ELB和IIS服务器位于安全的VPC中,因此HTTPS(在ELB上)到HTTP(IIS Web服务器)都可以。我想如果我使用URL重写方法,这将与将SSL卸载到Web服务器相同?

共有3个答案

甘西岭
2023-03-14

看起来我的问题实际上是我使用的证书和dns名称的问题。我们使用一个通配符ssl证书(即,*.example.com),我的ELB的CNAME记录被设置为类似test01.stage.example.com的东西。

一旦我将CNAME记录更改为test01.example.com并从IIS服务器中删除ssl证书,一切都正常工作。我对通配符证书有点误解。我只是假设*。example.com会捕获任何东西,即使它是3级或4级域。

康锦
2023-03-14

当您访问HTTPS网站时,如果需要加载一些额外的资产(例如图像、CSS文件、JS文件等)来自HTTP位置,那么您的浏览器将/可能会抱怨连接不安全。

使用Web浏览器的开发人员工具,查看是否建立了任何HTTP而不是HTTPS的连接(返回到您的服务器或另一台服务器)。

东门清夷
2023-03-14

实施URL重写模块2.0规则以基于URL模式进行重定向并不意味着将SSL卸载到IIS,如果您已经将证书上传到ELB,则无需在IIS上安装SSL证书。

在IIS上安装URL重写后,通常您会在Web中编写重写规则。配置如下:

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

您可能会在此找到关于如何解决证书错误的其他有用信息。

 类似资料:
  • 我已经准备好了用于在我的 AWS ELB 上终止外部 HTTPS 连接。我现在尝试使用带有自签名证书的 HTTPS 来保护 EC2 上的 ELB 和后端 NGINX 服务器之间的连接。我已经按照文档进行操作,但是通过HTTPS访问服务器会导致408 HTTP超时。我似乎无法获得任何调试信息来确定故障所在。 < li >我已经确认安全组允许EC2上的ELB和NGINX之间的连接。 < li >我已经

  • 我希望建立一个ELB,使用HTTPS与后端服务器通信。我正在尝试使用单个后端服务器进行概念验证,但似乎无法让ELB与服务器通信。我几乎可以肯定这是一个证书问题,因为任何没有SSL的设置都可以完美工作。 我如何设置?我尝试了来自多个答案和博客帖子的各种建议,但没有成功。 我现在所做的是使用以下命令设置自签名证书(来自AWS ELB- 我在签名时尝试了多个域名,我可以使用它们: 这里有我应该使用的域/

  • 当我在aws上设置LBS时,我将SSL卸载设置为将请求从ELB上的端口443转发到EC2实例上的端口80。 我不确定这是否正确,因为我看到很多人这样做。但在我这么做之后,浏览器控制台中出现了很多错误: "此请求已被阻止;内容必须通过HTTPS提供。" 我应该将前向端口80更改为443吗?并为每个实例安装ssl?

  • 正在EC2实例上运行Spring Boot应用程序端口8080。 我们遇到了重定向循环,这是有道理的。 对于Spring Boot应用程序,看起来所有请求都是向非安全端口8080发出的,它重定向到https://example.com,通过ELB并再次在8080上获得请求 对如何用AWS ELB运行这个有什么想法吗???

  • Navicat 为你的服务器提供安全性管理工具。你可以新建、编辑、删除用户、授予或撤消在已选择的数据库及它们的数据库对象的权限。点击 来打开 用户 的对象列表。对象列表窗格显示全部存在于服务器中的用户。

  • 我有一个Python服务器使用unix数据报套接字连接与一个C客户端通信。下面的代码设置一个套接字,然后从客户端发送和接收一条消息。这个脚本在python 2.7中工作,但是,当在python 3中测试它时,对recv()的调用会超时等待来自客户端的消息。然而,客户端确实从服务器接收消息而没有问题。我已经用3.5.2和3.7.1在两台不同的机器上测试过了,结果相同。 更新:我添加了一个ioloop