我创建了一个简单的WCF Web服务,它使用基本身份验证(sql成员资格提供程序)和https。虽然我的客户试图访问它时遇到问题。
我几乎100%肯定它与证书不受信任有关,虽然我认为几乎可以尝试所有。
该应用程序托管在IIS中。当我尝试编辑“默认网站”的绑定并为https选择证书时,它只显示我个人商店中的证书。所以我不能从受信任的商店中选择任何证书。
我尝试过从个人MMC添加权限,然后将其拖回到受信任的人或受信任的CA商店,尽管它仍未显示在IIS中。
我的客户端给出的错误是:错误:底层连接已关闭:无法为SSL / TLS安全通道建立信任关系。
我已尝试了所有问题here来解决此问题。
他们是否可以从受信任的商店为IIS中的https设置证书?或者,如果这不是问题,有人可以解决真正的问题吗?
答案 0 :(得分:0)
几个月前我遇到了这个问题,你的问题可能与我遇到的问题相同。
我的证书来自第三方。我将它安装在个人商店中,并提供了证书附带的密码。我设置了我的web.config,绑定,端点,我可以在IIS中看到证书等等。一切都很好。无论我尝试什么,我收到了错误消息:
The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel
最后我发现在IIS中运行ApplicationPool的进程没有访问证书的权限。使用inetmgr.exe
我单击了应用程序池,右键单击了用于我的网站的ApplicationPool并选择了Advanced Settings
。在部分Process Model
下的对话框中,有一个Identity
属性。这被设置为ApplicationPoolIdentity
,我将其更改为NetworkService
,以确定这应该有权限。再次尝试,它的确有效。
我希望这会有所帮助。