SSL:Apache

Aus KissDoc

Wechseln zu: Navigation, Suche
Draft

Dieses Dokument ist unfertig.
KissDoc:Drafts

Inhaltsverzeichnis

Thema: SSL

Top

Installation

Um den den Apache SSL-fähig zu machen benötigen wir das Modul mod_ssl, welches wir als Debian-Package libapache-mod-ssl vorfinden. In der /etc/apache/modules.conf wird das ganze dann mit

LoadModule ssl_module /usr/lib/apache/1.3/mod_ssl.so
LoadModule rewrite_module /usr/lib/apache/1.3/mod_rewrite.so

eingebunden. Das Modul rewrite_module dient lediglich zur Weiterleitung bei einer Anfrage auf Port 443 bzw. https.

Top

Konfiguration

Für die Konfiguration legen wir am besten einen virtuellen Host an, weil ja bestimmt nicht der ganze Server über https laufen soll.

<IfModule mod_ssl.c>
    Listen 443
    <VirtualHost mydomain.de:443>
        ServerName myservername
        DocumentRoot /var/www/

        SSLEngine on
        SSLCertificateFile    /etc/apache/ssl.crt/mydomain.crt
        SSLCertificateKeyFile /etc/apache/ssl.key/mydomain.key

        SSLLog /var/log/mydomain.ssl.log
    </VirtualHost>
</IfModule>

Damit sind die wichtigsten Einstellungen gemacht, Features sind hier erst mal nicht drin. Natürlich muss noch ein entsprechendes Zertifikat erstellt werden, damit das ganze funktioniert.

Top

Zertifikate

Für das Zertifakat nutzen wir OpenSSL.

  1. openssl genrsa -des3 -out server.key 1024 versehen mit einer langen Passphrase erstellt einen Schlüssel. Apache kann wegen der Passphrase jeoch mit diesem Key nicht arbeiten.
  2. openssl rsa -in server.key -out server.key.unsecure ermöglicht aus dem vorher erstellen Key die Passphrase zu entfernen. Dieser Key ist für Apache geeignet.
  3. openssl req -new -key server.key -out server.csr erstellt eine Certificate Signing Request (*.csr) Datei (das eigentliche Zertifikat), welche warheitsgemäß ausgefüllt werden muß. Dabei sind einige Angaben Pflicht (!) und andere Obligatorisch (*):
    1. Country Name (!) 2 Zeichen z.Bsp: DE
    2. State or Province Name (!) Vollständiger Name z. Bsp. Germany
    3. Locality Name (*) z.Bsp. Berlin
    4. Organization Name (!) z.Bsp. Pro-Linux GmbH
    5. Organizational Unit Name (*)
    6. Common Name (*) z.Bsp.: domain.tld
    7. Email Address (*) z.Bsp.: mail@domain.tld
    8. A challenge password (*)
    9. An optional company name (*)
  4. openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt signiert das Zertifikat (Selbstsignierung).

So, jetzt ist unser Zertifikat (server.crt) und der Schlüssel (server.key.unsecure) fertig ... nur noch ins Apacheverzeichnis und die Rechte (400) setzen.

Alternativ können auch Konfigurationsdateien weiterhelfen:

openssl req -config /etc/ssl/conf/mydomain.conf -new -x509 -days 365 -nodes \
        -out /etc/ssl/certs/mydomain.crt -keyout /etc/ssl/private/mydomain.key
Top

Logging

SSL hat auch noch ein eigenes Log, das SSLLog

SSLLog /var/log/mydomain.ssl.log
Top
Persönliche Werkzeuge