我有一个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证书来处理传入的请求消息吗?
请提供建议,以便在服务端正确接收安全凭证(用户名和密码)。
谢谢
答案 0 :(得分:0)
将证书安装到EC2实例IIS之后,应用程序便能够提取凭据。