【问题标题】:Cannot find the certificate in either the LocalMachine store or the CurrentUser store - Remote Certificate Name Mismatch在 LocalMachine 存储或 CurrentUser 存储中找不到证书 - 远程证书名称不匹配
【发布时间】:2014-07-07 07:51:42
【问题描述】:

我正在尝试在我的 C# 应用程序中使用在 SoapUI 中创建的 Mocked WebService,但在跟踪中出现此错误:

System.Net 信息:0 : [6756] SecureChannel#40583687 - 在 LocalMachine 存储或 CurrentUser 存储中找不到证书。

我按照以下程序创建证书: SoapUI Mock Services

这在 SoapUI 上运行良好,但是当我尝试通过 IE11 (https://localhost:8443/test?WSDL) 访问它时,它说证书有问题。我继续,将其安装在个人文件夹中(并确保在受信任的根证书身份验证中)。 这很奇怪,因为即使我刚刚使用 IE11 安装了证书,当我尝试在新页面中重新加载 WS 时,它也会向我显示相同的安全错误页面...... 当我签入 MMC(证书 -> 当前用户)时,证书就存在。 我使用指纹识别我的 C# 应用程序中的证书并且它被识别。我很确定,因为我尝试设置错误的指纹并收到此错误:

使用以下搜索条件找不到 X.509 证书:....

所以现在我在我的日志文件中得到了这个:

System.Net 信息:0:[6756] SecureChannel#40583687 - 在 LocalMachine 存储或 CurrentUser 存储中找不到证书。
...

System.Net 信息:0:[6756] SecureChannel#40583687 - 远程证书有错误:
System.Net 信息:0:[6756] SecureChannel#40583687 - 证书名称不匹配。
System.Net 信息:0:[6756] SecureChannel#40583687 - 远程证书已被用户验证为无效。
System.Net 错误:0:[6756] HttpWebRequest#12123890 中的异常:: - 底层连接已关闭:无法为 SSL/TLS 安全通道建立信任关系..
System.Net 错误:0:[6756] HttpWebRequest#12123890::GetResponse 中的异常 - 底层连接已关闭:无法为 SSL/TLS 安全通道建立信任关系。

我真的被这个困住了......有什么想法吗?

编辑:我尝试了 Visual Studio 的 Web 浏览器,我得到了这个:

【问题讨论】:

  • 证书是否也存在于机器商店中?
  • 是的,但我在 app.config 文件中设置了这个属性:storeLocation="CurrentUser"

标签: c# web-services ssl certificate


【解决方案1】:

找到解决方案:

我将私钥附加到 ce 证书,并通过此 http://www.discernment-solutions.com/?p=80 重新配置了 SoapUI
我将证书安装到 Trusted Root Cert Auth 中以确保它被识别并尝试了 IE 中建议我使用相关证书的地址。

感谢这个方法,我已经测试了我的 WebService。

【讨论】: