Debian Apache SSL Client Auth
Allgemein
Apache bietet die Möglichkeit, Clients anhand eines SSL-Zertifikates eindeutig zu identifizieren. Zu diesem Zweck ist ein signiertes Zertifikat erforderlich, dessen Root_CA dem Apache-Server bekannt ist. Das Zertifikat wird im Browser importiert. Auf Anforderung des Servers überträgt der Webbrowser das Zertifikat zum Webserver, der das Zertifikat verifizieren kann. Nur wenn er es als gültiges Zertifikat erkennt, ist der User berechtigt, die geschützte Website zu besuchen. Es sollte ein Passwort für das Client Zertifikat vergeben werden, um die Sicherheit nochmals zu erhöhen. Ansonsten kann jeder, der im Besitz des Zertifikates gelangt, auf die Webseite zugreifen.
Voraussetzungen:
- OpenSSL mit Root_CA
- Apache Webserver mit SSL
Client Zertifiakt erstellen
Client Zertifikate werden analog derer von Server-Zertifikaten erzeugt. Als CN wird jedoch keine Server Adresse verwendet, sondern der Name des Clients. Das Zertifikat wird im PKCS12-Format anstatt PEM-Format gespeichert und im Browser des Client importiert.
cd /etc/openssl/CA openssl req -new -nodes -out client-req.pem -config ./openssl.conf
Hinweis: | |
Bei der Frage nach dem Common Name (CN) unbedingt den Namen und Vornamen des Client Users eingeben. |
Signieren des Zertifikates:
openssl ca -out cert.pem -config ./openssl.conf -infiles client-req.pem
Exportieren ins PKCS12-Format:
openssl pkcs12 -export -in cert.pem -inkey key.pem -name "Name Vorname Client Cert" -out client.p12
Es wird nach dem Export-Passwort gefragt, das der User beim Import in den Webbrowser eingeben muss. Dieses muss also dem Client-User mitgeteilt werden.
openssl pkcs12 -in client.p12 -clcerts -nokeys -info
Das Import-Passwort= Export-Passwort erneut eingeben.
Aufräumen:
mv key.pem key/client-Name.pem mv client-req.pem req/client-Name.pem mv cert.pem certs/client-Name.pem mv client.p12 certs/client-Name.p12
Einbinden des Client-Zertifikats in Webbrowser
Mozilla Firefox
- Einstellungsdialog öffnen
- Tab Erweitert
- Tab Verschlüsselung
- Button Zertifikate anzeigen
- Tab Ihre Zertifikate
- Button Importieren auswählen
- Das auf den Client übertragene Client-Zertifikat (client-Name.p12) auswählen und bestätigen.
- Das Export-Passwort eingeben.
- Eine Meludng erscheint, dass das Zertifikat erfolgreich importiert wurde.
- Der Dialog kann nun wieder verlassen werden.
Internet Explorer
- Menü Extras/Internetoptionen
- Reiter Inhalte
- Button Zertifikate anwählen
- Reiter Eigene Zertifikate
- Button Importieren anklicken
- Im Assisten Button Weiter anklicken
- Button Durchsuchen anklicken
- Dateifilter im Dateiauswhldialog einstellen, damit Files mit .p12 Endung angezeigt werden
- Cleint-Zertifikat auswählen
- Button Weiter anklicken
- Export-Passwort eingeben
- Evtl., falls gewünscht die Option Hohe Sicherheit ... auswählen, damit Internet Explorer bei jeder Verwendung dieses Cleint-Zertifikates das Export-Passwort anfrägt. Falls diese Option nicht angewählt wird, dann wird das Passwort nur beim Importieren abgefragt und dann dauerhaft gespeichert.
- Button Weiter anklicken
- Option Alle Zertifikate in folgendem Speicher speichern und als Zertifikatespeicher Eigene Zertifikate. Anschließen Button Weiter aktivieren.
- Assistent mit Button Fertigstellen verlassen.
- Der Einstellungsdialog kann nun wieder verlassen werden.