客户端证书:无法为SSL/TLS建立具有权限的安全通道(Again!)

问题描述:

不好意思问这个问题,但是我在Stack上找不到任何答案。客户端证书:无法为SSL/TLS建立具有权限的安全通道(Again!)

我开发了一个客户端应用程序,使用WCF与外部SOAP API进行对话。要进行身份验证,应用程序使用客户端证书。 (客户端证书已安装在服务器上)。当我在本地机器上测试时,一切正常。

的问题,当我部署在IIS应用程序(在EC2)发生。应用程序无法再与SOAP API进行通信。这是错误:

"Could not establish secure channel for SSL/TLS with authority". 

我在当前用户和本地计算机位置的Personnal存储中安装证书。当我尝试使用浏览器访问SOAP API时(获取也需要客户端证书的wsdl文件)。

注意:证书不是自签名的。它由授权的CA创建。

感谢您的帮助

+0

所以按我理解你的客户端应用程序是网络应用程序,获取从本地机的证书并将其连接到以SOAP服务提出的要求。是吗? –

+0

嗨Rashmin,是的,就是这样。你有什么线索可以解决问题吗? – Hudvoy

+0

我将IIS的应用程序池的标识更改为LocalSystem并重新启动应用程序。我认为这是一个许可问题 – Hudvoy

证书存储只能由管理员访问。本地iis用户,即IUSER没有管理员权限,所以你得到了证书错误。将应用程序池标识更改为LocalSystem解决了您的问题,因为LocalSystem可以访问证书存储。

另一个最佳解决方案是只允许证书到IUSER接入。 (通过这样做,您已授予特定访问权限,而不是完全管理员对应用程序池的访问权限)。

要做到这一点去 证书控制台 - >右键单击证书 - >所有任务 - >管理私钥 - >添加IUSER并点击确定。

enter image description here

enter image description here

我改变了IIS的应用程序池本地系统的身份并重新启动应用程序。我认为这是一个许可问题。如果有人能解释我为什么解决这个问题,我会接受她/他的回答。