我一直在使用this repo,允许根据自签名的根证书创建证书。
我的根证书以MyCARoot.cer和MyCARoot.pvk的形式提供给我。它们之前是使用makecert创建的(并已部署)。所以为了让我使用上面链接中的代码,我必须使用pvk2pfx.exe在.pfx中组合.cer和.pvk文件
我的问题是,在生成证书并将其导入个人存储后,它似乎无效。在MMC的“证书路径”选项卡上,它说:
无法找到证书的签发人
注意:我对代码所做的唯一更改是使用的密码。
答案 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);