Good to Know Database

CentOS 5: HTTPS mit Client-Zertifikaten


Das folgende Tutorial baut auf dem Tutorial "CentOS 5: HTTPS mit Apache 2 und OpenSSL" auf und zeigt Ihnen wie Sie einen HTTPS-Server zusätzlich mit Client-Zertifikaten absichern können.

1. Client-Zertifikate erstellen

Wechseln Sie wieder in das Verzeichnis /root/CA, in welchem sich die bereits erzeugten Zertifikate und Schlüssel befinden.

[root@centos5 ~]# cd /root/CA

Zuerst erstellen Sie einen privaten RSA-Schlüssel für den Benutzer.

[root@centos5 CA]# openssl genrsa -des3 -out kainzbauerge.key 1024
Generating RSA private key, 1024 bit long modulus
.....++++++
............++++++
e is 65537 (0x10001)
Enter pass phrase for kainzbauerge.key:
Verifying - Enter pass phrase for kainzbauerge.key:

Anschließend wird ein Certificate Signing Request (CSR) erzeugt.

[root@centos5 CA]# openssl req -new -key kainzbauerge.key -out kainzbauerge.csr
Enter pass phrase for kainzbauerge.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:DE
State or Province Name (full name) [Berkshire]:Bayern
Locality Name (eg, city) [Newbury]:Woerth an der Donau
Organization Name (eg, company) [My Company Ltd]:Privat
Organizational Unit Name (eg, section) []:IT
Common Name (eg, your name or your server's hostname) []:Georg Kainzbauer
Email Address []:georg@localhost

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Der nächste Befehl generiert das Zertifikat.

[root@centos5 CA]# openssl x509 -req -in kainzbauerge.csr -out kainzbauerge.crt -sha1 -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650
Signature ok
subject=/C=DE/ST=Bayern/L=Woerth an der Donau/O=Privat/OU=IT/CN=Georg Kainzbauer/emailAddress=georg@localhost
Getting CA Private Key
Enter pass phrase for ca.key:

Jetzt müssen Sie noch eine PKCS#12 (Public Key Cryptography Standards #12) Datei erstellen in welcher der private Schlüssel und das zugehörige Zertifikat passwortgeschützt gespeichert wird.

[root@centos5 CA]# openssl pkcs12 -export -in kainzbauerge.crt -inkey kainzbauerge.key -name "Georg Kainzbauer" -out kainzbauerge.p12
Enter pass phrase for kainzbauerge.key:
Enter Export Password:
Verifying - Enter Export Password:

Hinweis: Das Export Password benötigen Sie später beim Importieren des Zertifikats wieder.

Details der PKCS#12 Datei können Sie sich mit dem folgenden Befehl ansehen.

[root@centos5 CA]# openssl pkcs12 -in kainzbauerge.p12 -clcerts -nokeys -info

Aus Sicherheitsgründen sollten Sie jetzt wieder die Rechte der erzeugten Dateien ändern.

[root@centos5 CA]# chmod -R 600 /root/CA

2. Apache 2 konfigurieren

Öffnen Sie die Konfigurationsdatei des SSL-Moduls um zwei Option zu ergänzen.

[root@centos5 CA]# vi /etc/httpd/conf.d/ssl.conf

Suchen Sie nach dem folgenden Abschnitt und erweitern Sie ihn.

#   Client Authentication (Type):
#   Client certificate verification type and depth.  Types are
#   none, optional, require and optional_no_ca.  Depth is a
#   number which specifies how deeply to verify the certificate
#   issuer chain before deciding the certificate is not valid.
#SSLVerifyClient require
#SSLVerifyDepth  10
SSLVerifyClient require
SSLVerifyDepth  1

Nachdem Sie die Änderungen gespeichert haben, müssen Sie den Webserver neu starten.

[root@centos5 CA]# service httpd restart

3. Client-Zertifikate importieren

Bevor Sie wieder auf Ihren HTTPS-Webserver zugreifen können, müssen Sie das Client-Zertifikat im Browser importieren. Dazu müssen Sie zuerst die Datei /root/CA/kainzbauerge.p12 auf einem sicheren Weg (SCP, verschlüsselte E-Mail, USB-Stick, ...) auf Ihren Client kopieren.

Ich möchte Ihnen hier nur kurz die Schritte zeigen, wie Sie das Client-Zertifikat im Firefox 2.0 und im Internet Explorer 6.0 importieren.

3.1 Firefox 2.0

- Starten Sie den Firefox
- Öffnen Sie das Menü "Extras" und wählen Sie "Einstellungen..." aus
- Öffnen Sie das Register "Erweitert" und anschließend das Register "Verschlüsselung"
- Klicken Sie nun auf "Zertifikate anzeigen"
- Im Register "Ihre Zertifikate" klicken Sie auf "Importieren"
- Öffnen Sie die Datei "kainzbauerge.p12" und geben Sie das Passwort ein
- Schließen Sie nun alle Fenster mit "OK"
- Rufen Sie eine Webseite auf Ihrem HTTPS-Webserver auf und akzeptieren Sie das Server-Zertifikat

3.2 Internet Explorer 6.0 SP2

- Starten Sie den Internet Explorer
- Öffnen Sie das Menü "Extras" und wählen Sie "Internetoptionen..." aus
- Öffnen Sie das Register "Inhalte"
- Klicken Sie auf "Zertifikate..." und anschließend auf "Importieren..."
- Klicken Sie auf "Weiter"
- Öffnen Sie die Datei "kainzbauerge.p12" und klicken Sie auf "Weiter"
- Geben Sie das Passwort ein und beenden Sie den Zertifikatsimport-Assistenten
- Schließen Sie die Internetoptionen
- Rufen Sie eine Webseite auf Ihrem HTTPS-Webserver auf und akzeptieren Sie das Server-Zertifikat


Dieser Eintrag wurde am 13.03.2008 erstellt und zuletzt am 24.01.2016 bearbeitet.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_33_233.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer