2017-10-17 249 views
-1

我一直在使用this repo,它允许基于自签名根证书创建证书。使用BouncyCastle创建基于自签名根证书颁发的证书

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

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

证书的颁发者找不到

注:我对代码所做的唯一的变化是已使用的密码。

回答

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);