Apache2 Zertifikate mit CA

Da ich viele verschiedene Vhosts habe und keine Lust mehr hatte für jeden Vhost immer gesondert mein Zertifikat zu erlauben, habe ich eine eigene Zertifizierungsstelle (CA) angelegt um Zertifikate selber zu signieren. So kann ich für jeden Vhost ein Zertifikat erstellen, signieren usw. Diesen Zertifikaten wird automatisch vertraut, wenn man mein root Zertifikat importiert.

Wie das ganze mit openssl funktioniert werde ich hier kurz zusammen fassen. Ein ausführlicherer Artikel, der mir auch als Quelle diente, ist bei ubuntuusers nach zu lesen. Dort kann man auch nachschauen, welche Pakete benötigt werden.

 

CA Erstellen

Als erstes brauchen wir das sogenannte root Zertifikat mit dem wir alle anderen Zertifikate signieren können. Dazu benutzten wir ein kleines Skript, dass uns das Leben einfacher macht. Das Skript sollte unter /usr/lib/ssl/misc/CA.pl zu finden sein. Standard wird das CA Zertifikat mit einer Laufzeit von drei Jahren und jedes normale Zertifikat mit einer Laufzeit von einem Jahr erstellt.

Damit wird ein CA erstellt. Was man bei den Abfragen genau eingeben sollte kann wie oben beschrieben im Forum von Ubuntuusers nach gelesen werden. Anschließend seht ihr ein Ordner demoCA. Diesen könnt ihr z.B. unter /etc/ssl/ ablegen. Für alle weiteren Befehle müsst ihr in das Verzeichnis wechseln in dem sich demoCA befindet. Die Datei cacert.pem ist euer öffentlicher Schlüssel der Zertifizierungsstelle.

 

Zertifikat erstellen

Damit erstellt ihr ein Zertifikat. Als "Common Name" müsst ihr unbedingt die Adresse eures Servers eingeben bzw die des VHosts. Z.B.:
Für eure normale Website: www.website.de
Für ein VHost: foo.website.de oder wiki.website.de usw
Jeder VHost benötigt ein eigenes Zertifikat.

Nach dem erstellen muss das Zertifikat noch über das eigene CA zertifiziert werden. Dies gescheit mit folgendem Befehl.

Da ihr das Zertifikat mit dem Webserver laden wollt und wahrscheinlich nicht jedes mal das Passwort dazu eingeben wollt, müssen wie dieses entfernen.

Jetzt können die Dateien newkey.pem und newreq.pem gelöscht werden. Die anderen beiden Dateien sind bitte Sicher auf zu bewahren. Für den key sollte man die Rechte soweit einschränken, dass nur noch root die Datei lesen darf. Und aus dem Cert müssen alle Zeilen vor -----BEGIN CERTIFICATE----- entfernt werden. Jetzt kann man die beiden Dateien am besten in demoCA/private/ ablegen mit einem vernünftigen Namen damit man auch weiß wozu das Zertifikat gehört.

Zu guter Letzt die beiden Dateien in die Apache Konfigurationsdatei des VHosts einbinden.

Das ganze sollte aber auch mit gnutls funktionieren.

 

 

Ein Kommentar zu Apache2 Zertifikate mit CA

  1. sepp sagt:

    Hey Hey,
    bin zufällig über deinen Post gestolpert und wollte dir nur easy-rsa2 empfehlen, das kommt mit dem Openvpn Paket und ist auch eine tolle Scriptsammlung zum Erstellen und Verwalten von Mehrstufigen CAs. Ich habe vor geraumer Zeit mal was dazu geschrieben: https://hydrauligsepp.dyndns.org/blog/2010/10/zertifikatsbasierte-authentifizierung-mit-apache2-und-easy-rsa2/

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Time limit is exhausted. Please reload CAPTCHA.