以编程方式创建自签名CA和客户端证书和吊销列表

时间:2016-01-18 05:42:23

标签: c# certificate bouncycastle x509 pki

我目前遇到了一些程序化自签名证书的问题,我已经添加了分发点。基本上,关键问题是由于某种原因,我使用Bouncy Castle以编程方式生成的证书,他们无法访问证书中指定的CRL。请参阅以下有关certutil的示例输出;

我一直在撕扯我的头发为什么会出现这个问题,所以至少要排除生成的证书作为问题,然后我使用open ssl生成了类似的证书结构。令我沮丧的是,该实例中的客户端证书能够毫无问题地连接到列出的CRL。

我可以包含用于生成Root和Client证书的代码(如果它有用),并且还可以提供更多的certutil outputif,它将有助于追踪问题。

非常感谢,

>CertContext[0][0]: dwInfoStatus=101 dwErrorStatus=1000040
  Issuer: CN=MyNewCA
  NotBefore: 1/17/2016 3:10 AM
  NotAfter: 1/17/2018 3:10 AM
  Subject: CN=Test.User
  Serial: 855daec11dd981ae87c379dadd323b
  2adc3620f29e8347ec7f007bee3b05a98a3ed49a
  Element.dwInfoStatus = CERT_TRUST_HAS_EXACT_MATCH_ISSUER (0x1)
  Element.dwInfoStatus = CERT_TRUST_HAS_PREFERRED_ISSUER (0x100)
  Element.dwErrorStatus = CERT_TRUST_REVOCATION_STATUS_UNKNOWN (0x40)
  Element.dwErrorStatus = CERT_TRUST_IS_OFFLINE_REVOCATION (0x1000000)
  Certificate AIA
  No URLs "None" Time: 0
  Certificate CDP 
  Wrong Issuer "Base CRL (01)" Time: 0
    [0.0] http://localhost/MyURL/RootRevocation2.crl

  >Certificate OCSP 
  No URLs "None" Time: 0
  Application[0] = 1.3.6.1.5.5.7.3.2 Client Authentication

>CertContext[0][1]: dwInfoStatus=109 dwErrorStatus=0
  Issuer: CN=MyNewCA
  NotBefore: 1/17/2016 3:10 AM
  NotAfter: 1/17/2026 3:10 AM
  Subject: CN=MyNewCA
  Serial: e4fcfcad23d16adef6f06bcacc5041
  9e500eac5e7a8b5545c92c8a27f1a96a0d223384
  Element.dwInfoStatus = CERT_TRUST_HAS_EXACT_MATCH_ISSUER (0x1)
  Element.dwInfoStatus = CERT_TRUST_IS_SELF_SIGNED (0x8)
  Element.dwInfoStatus = CERT_TRUST_HAS_PREFERRED_ISSUER (0x100)
编辑:在CryptoGuys评论的背面,我决定深入研究我的证书生成代码,以确保签名按预期工作,我确实发现了代码的问题。对于任何想要执行类似任务的人来说 - 这是我基于我的Bouncy Castle CRL一代的帖子的链接,这帮助我解决了我所遇到的逻辑缺陷; Create CRL file with Bouncy Castle c# Bouncy Castle CRL帮助文件位于此处; http://www.bouncycastle.org/wiki/display/JA1/X.509+Certificate+Revocation+Lists

谢谢你的帮助

0 个答案:

没有答案