SSL証明書をPEMからDERに変換し、秘密キーを保持するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/213568

質問

バックストーリー:OpenSSLを使用してPEMに変換する対称暗号(パスワード)を使用したPKCS#12(p12)証明書があります。それをテキストとして開くと、 BEGIN / END CERTIFICATE セクションと BEGIN / END RSA PRIVATE KEY の両方が含まれています。 .NET Frameworkの X509Certificate クラスは、「ASN.1 DER」のみをサポートしています。形式なので、OpenSSLを使用してPEMをDERに変換しました。残念ながら、これを行うには SslStream &でSSL接続を確立するために必要な秘密鍵が含まれていないようです。 TcpClient

X509CertificateCollection certsFromFile = new X509CertificateCollection();
X509Certificate2 cert = new X509Certificate2("my.der.crt");
if (!cert.HasPrivateKey)
    throw new Exception("No private key");
certsFromFile.Add(cert);

TcpClient tcpclient = new TcpClient(hostname, port);
SslStream sslstream = new SslStream(tcpclient.GetStream(), false,
    null, null);
sslstream.AuthenticateAsClient(hostname, certsFromFile,
    SslProtocols.Ssl3, false);
sslstream.Close();
tcpclient.Close();

署名に.NETで使用できるように秘密鍵情報を保持しながら、このPEMファイルを取得してDERにするにはどうすればよいですか?

役に立ちましたか?

解決

おっと、私は時代遅れです! X509Certificate2 はPKCS#12ファイルを読み取ることができるため、変換の必要はありません。

他のヒント

証明書とキーは通常、別々に保存されます。 PEMファイルを2つのファイルに切り取ります。1つは証明書付きで、もう1つはキー付きです。その後、opensslツールキットを使用して、各ファイルを個別にDERファイルに変換できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top