Dưới đây là một mã bạn có thể sử dụng:
static X509Certificate2 GenerateCertificate(string certName)
{
var keypairgen = new RsaKeyPairGenerator();
keypairgen.Init(new KeyGenerationParameters(new SecureRandom(new CryptoApiRandomGenerator()), 1024));
var keypair = keypairgen.GenerateKeyPair();
var gen = new X509V3CertificateGenerator();
var CN = new X509Name("CN=" + certName);
var SN = BigInteger.ProbablePrime(120, new Random());
gen.SetSerialNumber(SN);
gen.SetSubjectDN(CN);
gen.SetIssuerDN(CN);
gen.SetNotAfter(DateTime.MaxValue);
gen.SetNotBefore(DateTime.Now.Subtract(new TimeSpan(7, 0, 0, 0)));
gen.SetSignatureAlgorithm("MD5WithRSA");
gen.SetPublicKey(keypair.Public);
var newCert = gen.Generate(keypair.Private);
return new X509Certificate2(DotNetUtilities.ToX509Certificate((Org.BouncyCastle.X509.X509Certificate)newCert));
}
để làm việc này, đừng quên để thêm tài liệu tham khảo để BouncyCastle library
Nguồn
2012-02-12 15:37:44
dường như không ai biết điều này. Có vẻ như x509Certificate2 trong .net chỉ để đọc chứng chỉ x509Certificate2 thay vì tạo các chứng chỉ, đúng không? – travellover
Có, Với phương thức và hàm tạo mà X509Certificate2 có, chúng ta chỉ có thể nhập và nhận các thuộc tính của nó. – pinichi