gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 14:20:49 24 4
gpt4 key购买 nike

我想在 C#.net 中以编程方式创建由 CA 签名的证书。我能够使用 CertCreateSelfSignCertificate 创建自签名证书,如下所述: http://msdn.microsoft.com/en-us/library/aa376039(VS.85).aspx Self Signed Certificate in Windows without makecert?

我正在查看 MSDN 文档,但似乎找不到生成证书并根据请求对其进行签名的功能。大多数功能似乎都是为了操纵证书存储。我在这里咆哮错误的 dll 吗?

最佳答案

我也尝试过非托管方法,但没有成功。与此相反,使用 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)。

关于c# - 使用 crypt32.dll 创建签名证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/757001/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com