我有一个wfc VS 2010 / C#程序已经在Win03服务器上运行了6个月没有问题。该应用程序使用远程服务器的公钥发送请求,然后使用我们的私钥来解密返回的响应。
我们的证书即将到期,因此我们发布了新证书。我们向远程人员提供了公钥,并在服务器上安装了私钥文件,这是一个密码保护P12。我也将它安装在我的开发机器上。
开发机器没问题。我可以像以前一样发送请求并获得响应。我的开发机器是64位Win7。在Win03服务器生产计算机上,我收到以下错误:无法为具有权限' {远程服务器的公钥名称'
的SSL / TLS安全通道建立信任关系。远程服务器的公钥在我的证书库中具有有效日期和有效链。在此密钥上方的链中有两个证书,它们都有有效的日期和链。我已经卸载并重新安装了所有的证书,但是无法解决这个问题。我不知道是什么导致了它。
当我谷歌'无法建立与权威的SSL / TLS安全通道的信任关系'时,我看到许多“解决方案”用于修复同样的问题,它们都涉及代码更改。这似乎不是我想要的。代码在开发机器上运行良好,直到今天早上在生产服务器上正常运行。唯一改变的是我们的证书。
我注意到的一件事是Win03服务器没有本地计算机证书存储,所以我不可能在那里安装证书。当我导入证书时,我有时会让向导决定将证书放在哪里,其他时候告诉它在哪里放置证书。两者都有相同的反应。我总是以管理员身份登录,并始终在管理员下运行该应用程序。
知道是什么原因引起了我的问题吗?
< 更新> 当我运行编译的程序时,我在开发PC上遇到了同样的问题。但是,当我运行已编译的程序并尝试使用Fiddler查看输出时,我从Fiddler获得以下消息。如果我说是,请求会按预期返回。如果我拒绝,我会像服务器上的可执行文件一样100%失败。
无法为SSL / TLS安全通道建立信任关系 有权威&#;; 555.555.555.555'。
会话#1:远程服务器(555.555.555.555)提供了证书 由于RemoteCertificateNameMismatch而无法验证。
主题:CN = prods-dp.wellpoint.com,OU = SOA CoE,O = Wellpoint, L = Richmond,S = Virginia,C = US
ISSUER:CN = Anthem Inc证书颁发机构,OU =电子商务,O = Anthem Inc,C = US
EXPIRES:7/10/2013 6:39:09 AM
(可以通过单击工具|提琴选项来禁用此警告。)
格雷格
答案 0 :(得分:0)
我在app.congif中引用了ip地址而不是域名。
错误 < * endpoint address =" https://555.555.555.55/web_service"
右 < * endpoint address =" https://thewebservicedomain.com/web_service"
我不确定这是不是因为我有身份块引用域名作为端点的一部分,就像这样......
<identity>
<dns value="thewebservicedomain.com" />
</identity>
格雷格