Home       Servicebereich  Projekte  Kontakt  


Apache und SSL

Ein Apache-Zertifikat kann wie oben beschrieben erstellt werden. Der einfachste Fall ist hier die Erzeugung eines selbstsignierten Zertifikats. Beim Zugriff auf eine Site, die mit einem solchen Zertifikat ausgestattet ist, wird ein Browser bei jedem Zugriff die Meldung bzw. eine Dialogbox ausgeben, die den Benutzer darüber informiert, daß das Zertifikat nicht bekannt und somit nur eingeschränkt vertrauenswürdig ist.

Diese Meldung kann mit Installation des Zertifikats im Clientbrowser verhindert werden. Alternativ kann auch ein Zertifikat erzeugt werden, daß von einer CA (Certification Authority) signiert wurde. Jetzt muß nur noch das CA-Zertifikat im Browser installiert werden, der dann alle von dieser CA signierten Zertifikate aktzeptiert. Die von den meisten Besuchern einer Webiste genutzten Browser Mozilla (ehemals Netscape) und Microsoft Internet Explorer haben die CA-Zertifikate diverser Certification Authorities vorinstalliert, so daß ein von diesen signiertes Zertifikat (in der Defaulteinstellung) von den Browsern ohne Meldung akzeptiert wird.

Ein selbstsigniertes Zertifikat erzeugen

Das selbstsignierte Zertifikat erspart den Aufwand der Verwaltung einer CA oder die Kosten, wenn das Zertifikat von einer externen CA signiert wird. Die Erzeugung dieses Zertifikats erfolgt mit

    openssl req -new -x509 -days 365 \
    -keyout server-rsa-key.pem -out server-cert.pem

Ein von der CA signiertes Zertifikat erzeugen

Bei Nutzung eines von einer CA signierten Zertifikats wird zuerst ein Certificate Signing Request (CSR) erzeugt. Der CSR wird von der CA signiert und zurückgeschickt. Dieses Zertifikat kann dann auf dem Server installiert werden. Der CSR wird zusammen mit dem Private Key mit Hilfe von OpenSSL erzeugt:

    openssl req -new -keyout server-rsa-key.pem -out server-req.pem -days 365

Wichtig ist hier, daß der korrekte Hostname des Virtuellen Hosts bei der Frage nach dem Common Name (CN) angegeben wird. Die Datei server-req.pem wird dann an die Root CA geschickt.

Den Key entschlüsseln

Wenn ein Key in verschlüsselter Form vorliegt (und mit einer Passphrase gesichert ist), muß die Passphrase bei jedem Neustart des Apache Daemons neu eingegeben werden. Wenn der Key im Klartext vorliegt, ist das nicht notwendig. Um Key zu entschlüsseln und die Passphrase zu entfernen ist der folgende Aufruf notwendig:

    openssl rsa -in server-rsa-key.pem > server-key.pem
Die Passphrase wird noch einmal benötigt, um den Key zu entschlüsseln. Jetzt kann der Key geladen werden, ohne das eine Passphrase abgefragt wird.

Dann werden der Key und das zugehörige Zertifikat in das ssl Verzeichnis der Apache-Konfiguration (z.B. /etc/httpd/ssl/) verschoben.

In der httpd.conf werden Key und Zertifikat in der VHost konfiguration für den SSL-VHost eingestellt:

     SSLCertificateFile       /etc/httpd/ssl/server-cert.pem
     SSLCertificateKeyFile    /etc/httpd/ssl/server-key.pem

Weitere Konfigurationseinstellungen sind in der Konfigurationsdatei eines Apache mit eincompiliertem SSL-Suppoert (apache-ssl) bzw. mit mod_ssl ausführlich kommentiert.

Beispielkonfiguration für Apache 1.3

    <VirtualHost www.werthmoeller.de:443>
        ServerName   www.werthmoeller.de
        ServerAlias  werthmoeller.de
        DocumentRoot /var/www

        SSLEngine on
        SSLCertificateFile    /etc/apache/ssl/server-cert.pem
        SSLCertificateKeyFile /etc/apache/ssl/server-key.pem

        <Files ~ "\.(cgi|shtml)$">
            SSLOptions +StdEnvVars
        </Files>
        <Directory "/usr/lib/cgi-bin">
            SSLOptions +StdEnvVars
        </Directory>
    </VirtualHost>

Anzeigeprobleme mit dem Internet Explorer

Beim Microsoft Internet Explorer sind neben den gravierenden Sicherheitsproblemen auch diverse Bugs in der SSL Implementierung bekannt geworden. Bei Anzeigeproblemen sollte die Zeile

    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
in die Konfigurtion aufgenommen werden. Fall immer noch Anzeigeprobleme mit dem Internet Explorer bestehen, sollte auf der Serverseite für den Internet Explorer nur die Protokollversionen SSL 2.0 und SSL 3.0 aktiviert und TLS 1.0 deaktiviert werden. Alternativ kann versucht werden den Internet Explorer so zu konfigurieren, daß nur SSL 2.0 und SSL 3.0 genutzt werden. Das Empfehlenswerteste ist jedoch auf einen Browser auszuweichen, der den SSL Standard fehlerfrei unterstüzt.


< zurück  | weiter >