我有一个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%System32InetsrvConfigapplicationHost.config
)在EC2实例IIS中配置SSL,如下所示:
<site
<bindings>
<binding protocol="https" bindingInformation="*:443:" />
</bindings>
</site>
到目前为止,尝试了以下更改,绑定两端都相同。
includeTimestamp - false
enableUnsecuredResponse- true
maxClockSkew-10:00:00
在绑定安全性中更改了这些内容之后,我没有看到"不安全或不正确安全的错误"。但是,username在服务端没有接收到。
我已经通过记录用户名验证了这一点。
由于证书已在负载平衡器中配置,因此未在EC2实例IIS中配置证书。我们需要IIS证书来处理传入的请求消息吗?
请提供您的建议,以便在服务端正确接收安全凭据(用户名和密码)。
谢谢
将证书安装到EC2实例IIS后,应用程序能够提取凭据。