SSL:Apache
Aus KissDoc
Dieses Dokument ist unfertig.
Inhaltsverzeichnis |
Thema: SSL
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.
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.
Zertifikate
Für das Zertifakat nutzen wir OpenSSL.
openssl genrsa -des3 -out server.key 1024versehen mit einer langen Passphrase erstellt einen Schlüssel. Apache kann wegen der Passphrase jeoch mit diesem Key nicht arbeiten.openssl rsa -in server.key -out server.key.unsecureermöglicht aus dem vorher erstellen Key die Passphrase zu entfernen. Dieser Key ist für Apache geeignet.openssl req -new -key server.key -out server.csrerstellt eine Certificate Signing Request (*.csr) Datei (das eigentliche Zertifikat), welche warheitsgemäß ausgefüllt werden muß. Dabei sind einige Angaben Pflicht (!) und andere Obligatorisch (*):- Country Name (!) 2 Zeichen z.Bsp: DE
- State or Province Name (!) Vollständiger Name z. Bsp. Germany
- Locality Name (*) z.Bsp. Berlin
- Organization Name (!) z.Bsp. Pro-Linux GmbH
- Organizational Unit Name (*)
- Common Name (*) z.Bsp.: domain.tld
- Email Address (*) z.Bsp.: mail@domain.tld
- A challenge password (*)
- An optional company name (*)
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crtsigniert 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
Logging
SSL hat auch noch ein eigenes Log, das SSLLog
SSLLog /var/log/mydomain.ssl.log

