【问题标题】:C# x509Certificate2 cannot be createdC# x509Certificate2 无法创建
【发布时间】:2014-07-07 03:09:00
【问题描述】:

我通过从 Apple .p12 文件创建的字节数组创建证书。

X509Certificate2 cert = new X509Certificate2(AppleCertBytes, ApplePassword);

这工作正常并创建证书,但是,只有当我在本地主机上时。

当我构建我的 WebService 并将其发布到服务器时,它不起作用。

我尽可能地放置了日志,我注意到运行此行时请求消失了。

我没有收到服务器的响应,有时甚至收到Err: connection_reset。 当我调试该过程时,我没有看到任何错误,我认为.dll 文件可能是问题错误,我想我用不同的日志检查了 11 次,它似乎随时更新。

编辑 不抛出异常。

这里有什么我遗漏的吗? ApplicationPool 可能是插件之类的?

请注意。

我不想要任何创建证书的插件,我想要一个可能的结果。 谢谢。

【问题讨论】:

  • 所以要明确一点:该行不会引发异常?
  • 是的,忘了说。没有发现异常。
  • 该证书的 CA 是否在该服务器上的正确存储中?用于该 appdomain 的身份是否有权访问证书存储区?
  • 请解释一下?我不是证书方面的专家。
  • 如果您在本地打开该证书,它会显示证书链吗? (如果您打开证书,您可以在证书路径选项卡属性对话框中找到它)。那里的所有证书以及颁发者也需要存在于服务器上......

标签: c# visual-studio certificate x509certificate2


【解决方案1】:

您需要使用另一个overload of the constructor 将私钥存储在本地计算机存储中。

你的构造函数应该是:

var cert = new X509Certificate2(
                        AppleCertBytes, 
                        ApplePassword,
                        X509KeyStorageFlags.MachineKeySet);

【讨论】:

  • 你救了我的命。谢谢!
猜你喜欢
  • 2010-10-08
  • 1970-01-01
  • 1970-01-01
  • 2022-07-17
  • 2017-10-22
  • 1970-01-01
  • 2019-04-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多