XCA

Aus ConfigWiki
Version vom 19. April 2011, 17:42 Uhr von Netbreaker (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
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 Paket xca zu installieren. Der Download ist von http://xca.sourceforge.net möglich.

Um die Zertifikate zu verwenden exportiert man diese am besten 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. 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