演员
-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。我无法对任何应用程序的代码(服务器 - 客户端)进行任何更改
答案 0 :(得分:1)
我终于设法弄明白了。
问题是之前(已过期)的证书,其名称已添加到'受信任的根证书颁发机构'。每次我通过'证书导入向导'(或通过MMC)安装我的新证书时,向导都会告诉我它已成功添加。但是,它保留了以前证书的实例而没有覆盖它。
答案 1 :(得分:0)
修改验证回调以始终返回true:
ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, policyErrors) => true;
或者这是否违反了“无代码更改”条件?
答案 2 :(得分:0)
您是如何将证书安装到受信任的根存储中的?
如果您通过浏览器执行此操作,则很可能只将其添加到当前用户。尝试通过本地计算机帐户的MMC管理单元添加它;这是我们安装自签名IIS Express证书的地方,WCF似乎对它们感到满意。