我正在开发一个与第三方Web服务通信的Web服务。第三方要求我使用SSL证书与他们的系统进行所有通信。
在我的应用程序中,我使用以下代码从文件“certificate.p12”加载证书:
Cert = new X509Certificate2(certPath, certPWD);
然后我将其添加到我的网络请求中,如下所示:
webRequest.ClientCertificates.Add(Cert);
在我的开发机器上,这在测试服务器(外部安装在数据中心)上工作得很好,我根本无法使其工作。
我还尝试将证书放入各个位置的证书存储区,当前用户和本地计算机,然后从那里将其加载到代码中。同样的问题。
使用当前版本,应用程序在加载文件时停止...我在该行之前和之后都有调试信息,它没有超过它但也没有抛出任何错误。
我很困惑......感谢任何帮助。
感谢。
更新:虽然我不是100%肯定,但我很确定我在这一行上收到“未设置为引用实例的对象”错误
Cert = new X509Certificate2(certPath, certPWD);
更新2 :
“也许测试机器缺少证书的根链?” - 我认为这是问题所在。刚问办公室里的另一个人,证书是由第三方发出的,而不是现有的可靠来源。在我的本地机器上,这似乎不是一个问题,但我认为有更高级别的安全性在服务器上停止...现在看几个选项,
答案 0 :(得分:0)
尝试联系数据中心的IT支持人员,并确保用于运行托管应用程序的进程的标识具有访问证书存储区所需的权限。