Backstory : OpenSSL을 사용하여 PEM으로 변환하는 대칭 암호 (암호)가있는 PKCS # 12 (p12) 인증서가 있습니다. 그 텍스트를 열면 BEGIN/END CERTIFICATE
섹션과 BEGIN/END RSA PRIVATE KEY
섹션이 모두 포함되어 있습니다. .NET Framework X509Certificate
클래스는 "ASN.1 DER"형식 만 지원하므로 OpenSSL을 사용하여 PEM을 DER로 변환했습니다. 불행히도 SSL을 연결하는 데 필요한 개인 키가 포함되어 있지 않은 것 같습니다. SslStream
& TcpClient
. 개인 키 정보 그래서 서명에 .NET에서 사용할 수를 유지하면서SSL 인증서를 PEM에서 DER로 변환하고 개인 키를 유지하려면 어떻게해야합니까?
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();
어떻게이 PEM 파일을하고 DER로해야합니까?