Wie kann ich ein SSL-Zertifikat von PEM umwandeln, die privaten Schlüssel DEM und zu halten?
-
03-07-2019 - |
Frage
Hintergrundgeschichte: Ich habe ein PKCS # 12 (p12) Zertifikat mit einem symmetrischen Chiffre (Passwort), die ich OpenSSL verwendet, um eine PEM zu konvertieren; Öffnung, die als Text ich es enthält sowohl einen BEGIN/END CERTIFICATE
Abschnitt sowie BEGIN/END RSA PRIVATE KEY
sehen. Die .NET Framework X509Certificate
Klasse unterstützt nur den „ASN.1 DEN“ -Format, so habe ich OpenSSL die PEM konvertieren Die. Leider scheint es, dies den privaten Schlüssel enthält nicht tun, das ist, was ich für die Herstellung einer SSL-Verbindung mit SslStream
& TcpClient
müssen.
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();
Wie kann ich diese PEM-Datei nehmen und es in einem DER machen, während die privaten Schlüssel Informationen beibehalten, damit ich es in .NET zum Signieren verwenden kann?
Lösung
Oops, ich bin hinter der Zeit! Sieht aus wie X509Certificate2
PKCS # 12-Dateien lesen kann so für jede Konvertierung gibt es keine Notwendigkeit.
Andere Tipps
Zertifikate und Schlüssel werden separat im Allgemeinen gespeichert. Schneiden Sie die PEM-Datei in zwei Dateien, eine mit dem Zertifikat und einem mit dem Schlüssel. Anschließend können Sie den OpenSSL-Toolkit verwenden, um jede Datei einzeln in eine DER-Datei zu konvertieren.