PFX-Datei: Extration von cer-, key- und crt-Files
- Aktualisiert: Mittwoch, 18. Mai 2022 14:22
- Geschrieben von Mazin Shanyoor
Die PFX-Datei steht für ein Zertifikat im PKCS#12-Format. Im Prinzip kann man sich dieses Datei-Format als ein (passwortgeschütztes) Archiv vorstellen. In diesem Archiv wird das Zertifikat, das Intermediäre Zertifikat der Zertifizierungsstelle und der private Schlüssel zu dem Zertifikat gespeichert. Die Extraktion der Dateien aus diesen SSL-Zertifikat-Container erfolgt dabei in mehreren Stufen.
Extration der verschiedenen Dateien aus der PFX-Datei
Als ersten Schritt wird der passwortgeschützen Key aus der PFX-Datei extrahiert.
Nach Eingabe des Strings wird man aufgefordert das Passwort für die verschlüsselte PFX-Datei einzugeben. Anschließend wird für die generierten Key noch die Eingabe eines neuen Passworts (2x) verlangt.
Listing 1: Extraktion des verschlüsselten Key-Files
$root: openssl pkcs12 -in MEINE-PFX-DATEI.pfx -nocerts -out domain-encrypted.key
Enter Import Password:
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
Im zweiten Schritt wird der verschlüsselte Key (domain-encrypted.key) noch entschlüsselt. Die Passwortabfrage verlangt hierzu das neue Passwort aus Listing 1.
Listing 2
$root: openssl rsa -in domain-encrypted.key -out domain.key
Enter pass phrase for domain-encrypted.key:
writing RSA key
Im dritten Schritt wird dann das Zertifikat extrahiert. Nach Eingabe des Strings wird man aufgefordert das Passwort für die verschlüsselte PFX-Datei einzugeben (gleiche Passwort wie in Listing 1).
Listinng 3
$root: openssl pkcs12 -in MEINE-PFX-Datei.pfx -clcerts -nokeys -out domain.crt
Enter Import Password:
Listing 4
$root: openssl pkcs12 -in MEINE-PFX-DATEI.pfx -out domain-ca.cer -nodes -nokeys -cacerts
Enter Import Password:
SSL in der Apache-Konfiguration
Eintrag in die Apache-Konfigurationsdatei: /etc/apache2/sites-available/000-default.conf
Listinng 5
<IfModule mod_ssl.c >
SSLEngine on
SSLCertificateFile /path/to/domain.crt
SSLCertificateKeyFile /path/to/domain.key
SSLCertificateChainFile /path/to/domain-ca.cer
</IfModule>