2009-04-16 18 views
3

CAによって署名されたC#.netで証明書をプログラムで作成したいと考えています。私は、MSDNのドキュメントを見たと私は証明書を生成し、リクエストから、それに署名する機能を見つけることができないよう http://msdn.microsoft.com/en-us/library/aa376039(VS.85).aspx Self Signed Certificate in Windows without makecert?crypt32.dllで署名付き証明書を作成する

:私はここで説明したようCertCreateSelfSignCertificateと自己署名証明書を作成することができました。ほとんどの関数は、証明書ストアを操作するためのものです。私はここで間違ったdllを吠えていますか?

答えて

1

私の傾向は、まずcapicom.dllで試してみることです。基本的にはcryptoapiのラッパーです。

5

私は成功せず、同様非管理アプローチを試してみました。

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証明書ですが、署名証明書を作成することと同じである。それとは対照的に、BouncyCastleで証明書を作成することは簡単です。発行者と署名秘密鍵を変更するだけです。証明書をDER(.cer)およびPKCS12(.p12)にエクスポートすることもできます。

関連する問題