证书验证失败

时间:2012-02-24 15:25:10

标签: asp.net wcf certificate wcf-security

演员

-Asp.net网站 - 客户

-Wcf服务 - 服务器

两个应用程序都在IIS-7上运行。

我想在两个应用程序之间进行集成测试。客户端通过“https”访问服务器。 我创建了一个证书并将其分配给服务器。我还将证书添加到“受信任的根证书颁发机构”以被视为有效证书。当我通过浏览器(IE,Chrome ......)点击服务器的服务时,证书似乎是有效的。但是当我的客户端应用程序尝试访问服务器时,我收到以下错误:

Could not establish trust relationship for the SSL/TLS secure channel with authority **** --->
The remote certificate is invalid according to the validation procedure.

有没有办法跳过验证程序或使证书对我的客户端应用程序有效?

要知道:
1。我无法购买证书,因为我只会将其用于测试目的。
2。我无法对任何应用程序的代码(服务器 - 客户端)进行任何更改

3 个答案:

答案 0 :(得分:1)

我终于设法弄明白了。

问题是之前(已过期)的证书,其名称已添加到'受信任的根证书颁发机构'。每次我通过'证书导入向导'(或通过MMC)安装我的新证书时,向导都会告诉我它已成功添加。但是,它保留了以前证书的实例而没有覆盖它。

答案 1 :(得分:0)

修改验证回调以始终返回true:

ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, policyErrors) => true;

或者这是否违反了“无代码更改”条件?

答案 2 :(得分:0)

您是如何将证书安装到受信任的根存储中的?

如果您通过浏览器执行此操作,则很可能只将其添加到当前用户。尝试通过本地计算机帐户的MMC管理单元添加它;这是我们安装自签名IIS Express证书的地方,WCF似乎对它们感到满意。