我有一个WCF服务,它只在两台服务器机器之间使用。它永远不会公开使用。
我希望我可以将SSL与自签名证书一起用于安全性。
我使用IIS7创建了一个证书,使用IE和MMC(个人,TrustedRoot,第三方和TrustedPeople)将其安装在客户端计算机上。
我仍然无法通过代码或通过IE8进入该服务,而不会质疑证书。
从IE浏览器我得到通常的“这个网站的安全证书存在问题。”
从代码中我得到错误:“无法建立具有权限的SSL / TLS安全通道的信任关系”
为什么这不起作用?
答案 0 :(得分:16)
您确定自签名证书位于将访问您的WCF服务的客户端计算机上的受信任的根证书颁发机构证书存储区中吗?请参阅下面的屏幕截图,其中包含我的一台Windows Vista计算机信任的自签名证书。
您是否确定您的证书是自签名证书。查看我的一张自签名证书末尾的截图。
更新信息:
查看this发布信息,了解如何使用名为SelfSSL7的实用程序创建包含多个主机名的自签名证书。
这是另一个link,其中包含有关SelfSSL7.exe和下载信息的详细信息。
答案 1 :(得分:1)
我今天有这个 - 但是使用IIS7。如果您使用IIS生成证书(inetmgr->选择主节点,然后选择服务器证书,请使用右侧菜单选项创建自我认证的证书。'颁发给'属性使用您机器的FQDN设置 - 如'mymachine.myintranet.copp.net'或其他什么。
只要您从服务中连接网址的FQDN - 如'mymachine.myintranet.copp.net/myservice/service.svc'那么错误就会消失。
如果您正在使用备用URL(如IP地址或localhost),则会发生错误。因此,上面的机器在他的网络中显然被称为johnma然后它可以工作。
答案 2 :(得分:0)
它不起作用的原因是IE检测到证书不是从有效的CA(证书颁发机构)创建的。自签名证书比其他任何东西都更适合测试。如果您没有被警告,那么SSL就没有多大意义了。