加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用crypt32.dll创建签名证书

发布时间:2020-12-16 01:30:22 所属栏目:百科 来源:网络整理
导读:我想以C#.net编程方式创建由CA签名的证书.我能够使用CertCreateSelfSignCertificate创建一个自签名证书,如下所述: http://msdn.microsoft.com/en-us/library/aa376039(VS.85).aspx Self Signed Certificate in Windows without makecert? 我正在查看MSDN文
我想以C#.net编程方式创建由CA签名的证书.我能够使用CertCreateSelfSignCertificate创建一个自签名证书,如下所述:
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).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读