2017-10-17 250 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);