在调用Web服务时无法在客户端找到证书

时间:2017-10-09 10:21:41

标签: java c# wcf ssl

我在C#.Net中开发了一个Windows服务应用程序,它与用Java开发的Web服务(来自客户端)进行通信。此Web服务经过证书验证,这就是为什么每次我需要在调用Web服务之前读取证书的原因。但是,当我试图通过主题名称或缩略图获取证书时,我会为每种类型获得不同的错误。并且根本无法阅读证书。

这是我的代码:

 <clientCertificate storeLocation="CurrentUser" storeName="My" findValue="‎176455DB76886FF2BA3C122F8B36322F647CB2FD"  x509FindType="FindByThumbprint" />

如果我尝试使用上面的缩略图找到证书,那么我就会遇到以下错误:

  

无效的十六进制字符串格式。内部异常null

这是我试图调用证书的第二种方式:

<clientCertificate storeLocation="CurrentUser" storeName="My" findValue="‎CN=EO_UA_test, T=Privatmoney, OU=EO_UA_test, O=EO_UA_test, L=Dnepropetrovsk, C=UA"  x509FindType="FindBySubjectName" />

这是我在应用上述技术时遇到的错误:

  

使用以下搜索条件找不到X.509证书:StoreName'My',StoreLocation'Inte currentUser',FindType'FindBySubjectName',FindValue'CN = EO_UA_test,T = Privatmoney,OU = EO_UA_test,O = EO_UA_test, L = Dnepropetrovsk,C = UA'。

对于第二个错误,我试过没有“CN =”,但我仍然得到同样的错误。此外,我已使用MMC.exe检查证书,我可以在CurrentUser-&gt; personal下找到我的证书 请在上面建议我。

1 个答案:

答案 0 :(得分:1)

如果您已从MMC证书控制台复制指纹,详细信息部分 - &gt;指纹 - 这也会在第一个复制前面复制一个不可见的字符。只需将光标定位在第一个字符之前,然后按退格键一次。

(如果这没有用,我很抱歉,这不是你的答案。我没有足够的意见来写评论:))