XCA

Aus ConfigWiki
Wechseln zu: Navigation, Suche

XCA ist eine grafische Oberfläche zum verwalten von Zertifikaten. CA, Zertifikate, Keys und die CRL können hier bequem angelegt oder auch importiert werden. XCA ist für Windows, Linux und Mac verfügbar. Templates erleichtern das erstellen neuer CSR und Zertifikate. Keys werden zentral in der Datenbank gelagert und mit dem Datenbank-Kennwort gesichert. Damit kann der Key erneut exportiert werden, wenn das Kennwort vergessen wurde. XCA kann auch mehrere solcher Datenbanken verwalten.

Unter Debian (ab Squeeze) und ubuntu ist einfach das gleichnamige Paket zu installieren. Der Download ist von http://xca.sourceforge.net möglich.

Um die Zertifikate zu verwenden exportiert man diese aus der Sektion Zertifikate im Format "PKCS #12 with Certificate chain". PKCS #12 ohne Chain funktioniert nicht mit OpenVPN, sobald die Zertifikaten von einer Sub-CA signiert wurden, da der Client dann nicht die gesamte Kette bis zum Server-Zertifikat überprüfen kann. Die Keys selbst (aus der Sektion Private Schlüssel) lassen sich leider in keinem brauchbaren Format für OpenVPN exportieren.

Die exportierte p12-Datei kann in der OpenVPN-Konfiguration direkt verwendet werden:

pkcs12 /path/to/myCert.p12

Damit werden die "ca", "cert" und "key"-Direktiven nicht mehr benötigt.

Sollten die einzelnen Bestandteile benötigt werden, so können diese mit openssl extrahiert werden:

#!/bin/bash

if [[ "${1##*.}" == "p12" && -f $1 ]]; then
   CERT=${1%.p12}
else
   echo "Usage $0 <p12-File> [nopass]"
   exit 1
fi

if [[ "${2}" == "nopass" ]]; then
   echo "extract private key without new passphrase !!!"
   echo
   KEYOPT="-nodes"
fi

echo "extract client cert:"
openssl pkcs12 -in $CERT.p12 -clcerts -nokeys -nodes -out $CERT-cert.pem

echo "extract private key:"
openssl pkcs12 -in $CERT.p12 -nocerts $KEYOPT -out $CERT-key.pem

echo "extract CA cert:"
openssl pkcs12 -in $CERT.p12 -cacerts -nodes -out $CERT-ca.pem

Dieses Script erzeugt in einen Durchgang die benötigten Einzelteile.

Meine Werkzeuge