AWS环境中的WCF UserNameTransport错误-收到不安全或错误保护的错误

时间:2018-12-24 04:07:39

标签: c# amazon-web-services wcf ssl amazon-ec2

我有一个WCF应用程序,可以在SSL上运行。在我的本地计算机上使用自签名证书配置的SSL,它可以正常工作。

将应用程序移至AWS EC2实例时出现以下错误。

例外:

  

从另一方收到不安全或不正确安全的错误。有关代码和详细信息,请参见内部FaultException。

异常,在检查tracelog.svclog之后:

  

安全处理器无法在消息中找到安全标头。这可能是因为该消息是不安全的故障,或者是由于通信双方之间存在绑定不匹配。如果将服务配置为具有安全性,并且客户端未使用安全性,则会发生这种情况。

此应用程序使用的绑定

<customBinding>
    <binding name="httpBasic" receiveTimeout="00:10:00" sendTimeout="00:10:00">
        <security authenticationMode="UserNameOverTransport" >
        </security>
        <textMessageEncoding  messageVersion="Soap11"/>  
        <httpsTransport maxReceivedMessageSize="2147483647" 
              keepAliveEnabled="false" transferMode="Streamed"/>
    </binding>
</customBinding>

AWS环境:

EC2实例是Windows 10计算机,该计算机位于经典负载均衡器之后,并且负载均衡器是使用Route 53 SSL配置的。

EC2实例不是图形用户界面。它只能访问DOS命令提示符。

通过如下更新配置文件(%WinDir%\System32\Inetsrv\Config\applicationHost.config)在EC2实例IIS中配置SSL:

<site
   <bindings>
      <binding protocol="https" bindingInformation="*:443:" />
   </bindings>
</site>

到目前为止,尝试了以下更改,绑定的两端都相同。

includeTimestamp - false
enableUnsecuredResponse- true
maxClockSkew-10:00:00

在绑定安全性中更改了这些内容之后,我没有看到“不安全或错误保护的错误”错误。但是,用户名在服务端未收到。

我已经通过记录用户名对此进行了验证。

由于尚未在负载均衡器中配置证书,因此未在EC2实例IIS中配置证书。我们需要IIS证书来处理传入的请求消息吗?

请提供建议,以便在服务端正确接收安全凭证(用户名和密码)。

谢谢

1 个答案:

答案 0 :(得分:0)

将证书安装到EC2实例IIS之后,应用程序便能够提取凭据。