使用BouncyCastle

时间:2017-10-17 18:34:52

标签: c# ssl-certificate bouncycastle

我一直在使用this repo,允许根据自签名的根证书创建证书。

我的根证书以MyCARoot.cer和MyCARoot.pvk的形式提供给我。它们之前是使用makecert创建的(并已部署)。所以为了让我使用上面链接中的代码,我必须使用pvk2pfx.exe在.pfx中组合.cer和.pvk文件

我的问题是,在生成证书并将其导入个人存储后,它似乎无效。在MMC的“证书路径”选项卡上,它说:

  

无法找到证书的签发人

注意:我对代码所做的唯一更改是使用的密码。

1 个答案:

答案 0 :(得分:0)

该来源的问题在于它应该这样做:

X509Certificate issueCert = Org.BouncyCastle.Security.DotNetUtilities.FromX509Certificate(issuerCertificate);
var authorityKeyIdentifier = new AuthorityKeyIdentifierStructure(issueCert);
certificateGenerator.AddExtension(X509Extensions.AuthorityKeyIdentifier.Id, false, authorityKeyIdentifier);

而不是:

var authorityKeyIdentifierExtension =
new AuthorityKeyIdentifier(
    SubjectPublicKeyInfoFactory.CreateSubjectPublicKeyInfo(issuerKeyPair.Public),
    new GeneralNames(new GeneralName(issuerDN)),
    issuerSerialNumber);

certificateGenerator.AddExtension(
    X509Extensions.AuthorityKeyIdentifier.Id, false, authorityKeyIdentifierExtension);