2011-04-23 71 views
3

我使用C#。网络编程。我的问题是使用OpenSSL.net创建证书Personal和CA,并通过CA的私钥对个人证书进行签名。如何使用OpenSSL.net创建证书

我已经在我的项目中管理了集成的OpenSSL.net,但我找不到创建证书的代码行。

如何使用OpenSSL.net创建证书?

回答

6

试试这个:

X509Name issuer = new X509Name("issuer"); 

X509Name subject = new X509Name("subject"); 
RSA rsa = new RSA(); 
rsa.GenerateKeys(512,0x10021,null,null); 
CryptoKey key = new CryptoKey(rsa); 

X509Certificate cert = new X509Certificate(123, subject, issuer, key, DateTime.Now, 
                 DateTime.Now.AddDays(200)); 

File.WriteAllText("C:\\temp\\public.txt",rsa.PublicKeyAsPEM); 
File.WriteAllText("C:\\temp\\private.txt", rsa.PrivateKeyAsPEM); 

BIO bio = BIO.File("C:/temp/cert.cer", "w"); 
cert.Write(bio); 

X509Certificate是创建一个证书; cert.Write将此证书写入文件。

+0

现在我正在寻找发送请求到服务器进行签名。 X509Request就在附近。 – Dimka 2011-04-26 06:57:05

+0

'X509CertificateAuthority'上的'ProcessRequest'会让你在那里... – 2012-02-28 12:54:03