Export eines Private Keys aus einem Java Keystore?

Ausgangssituation ist eine .jks-Datei, welche unser Zertifikat und den dazugehörigen Private Key enthält. Daraus sollen .cer und .key-Dateien erstellt werden. Das Zertifikat zu exportieren, ist dabei relativ einfach. (Vorausgesetzt, man kennt noch das Passwort):

$ keytool -export -keystore meinKeystore.jks -alias meineDomain.de -file meineDomain.de.crt
Keystore-Kennwort eingeben: changeit
Zertifikat in Datei <meineDomain.crt> gespeichert

Beim privaten Schlüssel wird’s kniffelig, da das Keytool diesen nicht ausgeben kann.

Die Lösung ist, es wie folgt in eine PKCS12-Datei umzuwandeln:

$ keytool -v -importkeystore -srckeystore meinKeystore.jks -srcalias meineDomain.de -destkeystore meineDomain.de.p12 -deststoretype PKCS12
Ziel-Keystore-Kennwort eingeben: changeit
Neues Kennwort erneut eingeben: changeit
Quell-Keystore-Kennwort eingeben: changeit
[meinCert.p12 wird gesichert]

…und anschließend die PKCS12-Datei via OpenSSL Tools auszulesen:

$ openssl pkcs12 -in meineDomain.de.p12 -nocerts -nodes
Enter Import Password:
MAC verified OK
Bag Attributes
friendlyName: meineDomain.de
localKeyID: 33 79 6E 65 20 31 34 36 32 31 44 32 39 36 32 37 32 14
Key Attributes: <No Attributes>
-----BEGIN PRIVATE KEY-----
GTWoqoEJAgMBAAECggEBAKYKAtjrGqa6yjWkFQUKjCsArLhnyl76ieVx4+/5ONVd
DIW0upmknVnBDKc4grgKHVpVaPLWlJHPrJawRbnFYHYCLsseT101Na7Bq6l+KEqj
91d3CugVP4sffyMZKtIAyKgb7rNI6K/N/R1j6lYwBUDsEjJy429KLs5YxLmLtYh5
JW3r/oMl8hbyb6qb+mIEbswWZGHGMByCg+xKnfW4rAECgYEA2wreuO4obPHpICQk
... XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ...
xqHIYSbPVqVzrt0zip5d0Q9r/OkCgYEAxMI/kPEr2+Ihu7fKq7n+cLZgq4/zmqVz
A0vzxZJqovnG9pXRwzj4+czd3IOozqZUTRypMZxfbK/wK8JKGSYhwA6W0gkfhzvS
J7CHhlqchO4DB3gvWKN8tZVW3TQWxXqeS2QI4B1WrUyPV3vYlKEIucXV2QKBgQCa
LkkXcBTZQfMDITt8o8vBUPihl7ThmwKRwKU1fHwK2ujpPtrd3FuRK7jjI0xn/104
eLWjOCPvnW7GaqRImHhoNJ3o
-----END PRIVATE KEY-----

Short URL for this post: http://wp.me/p4nxik-2DG
This entry was posted in Security and tagged , , , . Bookmark the permalink.

Leave a Reply