私は成功せず、同様非管理アプローチを試してみました。
var keygen = new RsaKeyPairGenerator();
keygen.Init(new KeyGenerationParameters(new SecureRandom(), 2048));
var keys = keygen.GenerateKeyPair();
var certGen = new X509V3CertificateGenerator();
var dnName = new X509Name("CN=Test CA");
certGen.SetSerialNumber(BigInteger.ValueOf(1));
certGen.SetIssuerDN(dnName);
certGen.SetNotBefore(DateTime.Today);
certGen.SetNotAfter(DateTime.Today.AddYears(10));
certGen.SetSubjectDN(dnName);
certGen.SetPublicKey(keys.Public);
certGen.SetSignatureAlgorithm("SHA1WITHRSA");
var cert = certGen.Generate(keys.Private);
これは自己署名CA証明書ですが、署名証明書を作成することと同じである。それとは対照的に、BouncyCastleで証明書を作成することは簡単です。発行者と署名秘密鍵を変更するだけです。証明書をDER(.cer)およびPKCS12(.p12)にエクスポートすることもできます。