我想以C#.net编程方式创建由CA签名的证书.我能够使用CertCreateSelfSignCertificate创建一个自签名证书,如下所述: http://msdn.microsoft.com/en-us/library/aa376039(VS.85).aspx Self Signed Certificate in Windows wi
http://msdn.microsoft.com/en-us/library/aa376039(VS.85).aspx
Self Signed Certificate in Windows without makecert?
我正在查看MSDN文档,我似乎无法找到生成证书并从请求中签名的函数.大多数函数似乎是用于操作证书库.我在这里咆哮错了吗?
我尝试了非托管方法也没有成功.与此相反,使用 BouncyCastle创建证书非常简单: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证书,但创建签名证书是相同的.只需更改颁发者和签名私钥即可.您还可以将证书导出到DER(.cer)和PKCS12(.p12).