IIS 连接到 SoapUi 时握手失败 (40)
Posted
技术标签:
【中文标题】IIS 连接到 SoapUi 时握手失败 (40)【英文标题】:Handshake Failure (40) when IIS connects to SoapUi 【发布时间】:2021-11-14 19:44:09 【问题描述】:我正在创建一个由 IIS 托管的应用程序,我想让它与 SoapUi 安全地通信(所以 IIS 是这种情况下的客户端)。我在两端都使用证书,因为我想要相互身份验证。当 IIS 连接到 SoapUi 时,我可以在 WireShark 中看到:
-
客户端问候是从 IIS 发送的
然后 SoapUi 以 server hello 响应并继续证书和证书请求
然后 IIS 使用 TCP [FIN, ACK] 终止连接
最后 SoapUi 发送 Alert(Level: Fatal, Description: Handshake Failure)
在我的应用程序日志中,我可以看到错误
Could not establish secure channel for SSL/TLS with authority 'localhost:8443'.
从我的应用程序的日志中,我可以看到我的应用程序显然正在按预期加载证书。证书是从 LocalMachine 证书存储加载的,CA 证书位于 Trusted Root Certification Authorities 中。在 SoapUi 中,我为 SoapUi 证书/私钥和 CA 证书/私钥添加了 .pfx 文件。 IIS 证书和 SoapUi 证书均由同一个 CA 签名。
我需要在 IIS 中配置什么特殊内容以允许应用通过相互证书身份验证进行连接。
【问题讨论】:
您需要确保运行该服务的应用程序池可以访问证书。docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/… 谢谢,解决了。我必须让我的应用程序池访问证书的私钥。 【参考方案1】:IIS 不一定有权访问本地计算机证书存储中的私钥。如果您已经安装了证书,例如一个管理员帐户,您必须give the app pool that runs your application access to the private key of the certificate。
【讨论】:
以上是关于IIS 连接到 SoapUi 时握手失败 (40)的主要内容,如果未能解决你的问题,请参考以下文章
使用 HTTPS 连接到 Web 服务时 Android SSL 握手失败
Java 使用 SSL 握手失败连接到 SOAP Web 服务
带有 TLSv1.2 的 Java 7 连接到 LDAPS 握手失败
WebSocket 连接到“ws://localhost:8080/”失败:WebSocket 握手期间出错:意外响应代码:404
WebSocket 连接到“wss://test.example.com:8090/”失败:WebSocket 打开握手超时
WebSocket 连接到“ws://chattestarpit.herokuapp.com/”失败:WebSocket 握手期间出错:意外响应代码:503