我在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下找到我的证书 请在上面建议我。
答案 0 :(得分:1)
如果您已从MMC证书控制台复制指纹,详细信息部分 - &gt;指纹 - 这也会在第一个复制前面复制一个不可见的字符。只需将光标定位在第一个字符之前,然后按退格键一次。
(如果这没有用,我很抱歉,这不是你的答案。我没有足够的意见来写评论:))