it-swarm.com.de

Erstellen eines privaten RSA-Schlüssels aus der PFX-Datei (PKCS # 12)

Ich versuche, einen privaten RSA-Schlüssel aus einer pkcs # 12-Datei zu erhalten.

Ich habe versucht, den Standard auszuführen

openssl pkcs12 -nocerts -out priv.pem -in domain.com.pfx

Dies führt jedoch zu einer Schlüsseldatei wie der folgenden:

Bag Attributes
Microsoft Local Key set: <No Values>
localKeyID: 01 00 00 00 
friendlyName: xxxxxxxx
Microsoft CSP Name: Microsoft RSA SChannel Cryptographic Provider
Key Attributes
X509v3 Key Usage: 10
-----BEGIN ENCRYPTED PRIVATE KEY-----

Der Server, den ich dazu verwenden muss, kann die Schlüsseldatei nicht verarbeiten, und wenn ich mir die Beispieldaten ansehe, sehe ich eine Datei wie unten

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,2CF27DD60B8BB3FF

Und natürlich ist der Schlüssel in beiden Dateien vorhanden. Allerdings scheint der Server nur die RSA Private-Schlüsseldatei zu akzeptieren, und es scheint mir, dass die Ausgabe, die ich bekomme, eine X509v3-Datei ist, die jeder wissen kann Dies zu einer RSA Private-Schlüsseldatei?

15
Dorana

Nun, es ist am einfachsten, einen Texteditor zu verwenden, um die fehlerhaften Zeilen zu entfernen. Andernfalls werden die Beutelattribute unten aufgeräumt:

openssl pkcs12 -in x.pfx  -nocerts -nodes -passin pass:123456 | openssl rsa -out privkey.pem

und kann auch verwendet werden, um/net zu erhalten

openssl pkcs12 -in x-fred.p12  -nocerts -nodes -passin pass: | openssl rsa -outform DER -out privkey.der

welches Format kann tatsächlich das gewünschte Format sein? Es ist jedoch üblich, dass Tools einen privaten Schlüssel nicht akzeptieren, der weniger als ein Kennwort ist (und viele Tools schlagen im Hintergrund fehl, wenn die Anzahl der Zeichen nicht mindestens 4 oder 6 ist). Ändern Sie in diesen Fällen das Endstück in:

.... | openssl rsa -passout pass:123456 -out privkey.pem
.... | openssl rsa -passout pass:123456 -out privkey.der -outform der
25

Das funktioniert für mich:

openssl pkcs12 -in "$1" \
    -nocerts -nomacver \
    -passin file:<(cat "$pw") \
    -passout file:<(cat "$pw") |
sed -n '/^-----BEGIN ENCRYPTED PRIVATE KEY-----/,/^-----END ENCRYPTED PRIVATE KEY-----/p'
0
ceving

Unter Windows 7 64bit können Sie einfach Ihren Befehl verwenden. In Mac und Linux sollten Sie jedoch die folgenden Schritte ausführen:

1, erstellen Sie Ihre PEM-Datei:
openssl pkcs12 -in xxx.pfx -out xxx.pem

2, erstellen Sie Ihren privaten RSA-Schlüssel:
openssl pkcs12 -in xxx.pfx -passin pass: IhrKennwort | openssl rsa -des3 -passout pass: yourpassowrd -out xxx.key

in diesem Schritt wird die Schlüsseldatei mit dem Inhalt erstellt: " ----- BEGIN RSA PRIVATE KEY ----- Proc-Typ: 4, ENCRYPTED DEK- Info: DES-EDE3-CBC, 2CF27DD60B8BB3FF "

3. Öffnen Sie Ihre .pem- und .key-Datei in einem Texteditor und ersetzen Sie den Origin-Schlüssel " ----- BEGIN ENCRYPTED PRIVATE KEY -----" in der .pem-Datei mit dem rsa-Schlüssel in der .key-Datei.

0
schumyxp