OpenVPN mit pkcs12 Container unter Ubuntu 22.10 / OpenSSL 3.0

Unter Ubuntu 22.10 mit OpenSSL 3 lassen sich mit OpenVPN keine pkcs12 Container mehr nutzen. Die Ursache hierfür ist, dass .p12 Dateien mit einer generischen RC2 Verschlüsselung verschlüsselt sind. Das führt dazu, dass sich diese Container auch ohne eine gesetzte Passphrase nicht mehr durch Drittprogramme wie OpenVPN öffnen lassen.

 

.p12 Container enthalten 

  • ca.crt
  • client/server.crt
  • client/server.key

Diese müssen - nach Möglichkeit noch mit einer Open SSL 1.x Version - aus dem .p12 Container extrahiert werden mit:

 

openssl pkcs12 -in openvpn.p12 -out openvpn.crt -clcerts -nokeys
openssl pkcs12 -in openvpn.p12 -out openvpn.pem -nocerts -nodes
openssl pkcs12 -in openvpn.p12 -out ca.crt -cacerts -nokeys

 

Danach muss die openvpn Konfigurationsdatei angepasst werden. Hier wird die .p12 Datei auskommentiert (oder gelöscht) und die neu generierten Dateien hinzugefügt.

#pkcs12 openvpn.p12
cert openvpn.crt
key openvpn.pem 
ca ca.crt

Noch charmanter ist es natürlich, die Dateien direkt in die OpenVPN Config zu integrieren. Hierzu fügen sie den Inhalt der Zertifikatsdateien und Diffie-Hellman Parameter wie ein HTML-Konstrukt in spitze Klammern direkt an das Ende der Config-Datei. Obige Referenzen auf externe .crt oder .pem Dateien entfallen dann.

<ca>
-----BEGIN CERTIFICATE-----
MII...
...==
-----END CERTIFICATE-----
</ca>
<cert>
-----BEGIN CERTIFICATE-----
MII...
...==
-----END CERTIFICATE-----
</cert>
<key>
-----BEGIN PRIVATE KEY-----
MII...
...==
-----END PRIVATE KEY-----
</key>
<dh>
-----BEGIN DH PARAMETERS-----
MII...
...==
-----END DH PARAMETERS-----
</dh>