Installation eines SSL-Zertifikates für den Apache Webserver 2.x
In diesem Tutorial behandeln wir die Installation eines SSL-Zertifikates für den Webserver Apache 2 mit mod_ssl (OpenSSL)
Voraussetzungen
Sie benötigen folgende Dateien, um Ihr Zertifikat zu installieren:
1) Den Privaten Schlüssel (Private Key)
2) Ihr Serverzertifikat
3) Zwischenzertikate der Vergabestelle
Zwischenzertifikate
Um eine vollständige Zertifikatskette auszugeben, die vom Client als vertrauenswürdig erkannt wird, müssen auch die Zwischenzertifikate der Vergabestelle (z.B. Comodo, GeoTrust, thawte oder Symantec) installiert werden. Sollte mehr als ein Zwischenzertifikat benötigt werden, müssen diese in eine Datei zusammengefasst werden. Eine zusammengefasste Datei für Ihr Produkt können Sie hier herunterladen:
SSL Zwischenzertifikate
Speicherort für Dateien
Für die Ablage der Dateien verwenden wir in dieser Anleitung den Pfad/etc/ssl:
/etc/ssl/certs -> Ablage für Ihr Serverzertifikat und die Zwischenzertifikate
/etc/ssl/private -> Ablage für den privaten Schlüssel
Konfiguration des virtuellen Apache Hosts (vhost)
Um SSL zu aktivieren, muss die vhost Konfiguration von Apache angepasst werden.
Je nach verwendeter Distribution finden Sie die Konfigurationsdatei in einem der folgenden Verzeichnisse:
Debian, Ubuntu: /etc/apache2/sites-available/ oder verlinkt /etc/apache2/sites-enabled/
Redhat, Fedora und Mandriva: /etc/httpd
FreeBSD: /usr/local/etc/apache22/
NetBSD: /usr/pkg/etc/httpd/
Selbst-kompilierter Apache2: /usr/local/apache2/conf/
Vorbereitung
Um einen neuen vhost mit SSL-Unterstützung anzulegen, kopieren Sie Ihren http vhost, der auf Port 80 lauscht und ändern bei der Kopie den Port auf 443:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <VirtualHost 10.0.0.1:80> ServerName www.example.tld ServerAlias www.www.example.tld DocumentRoot /var/www CustomLog /var/log/apache2/www_access_log combined ErrorLog /var/log/apache2/www_error_log ServerAdmin webmaster@localhost <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> </VirtualHost> <VirtualHost 10.0.0.1:443> ServerName www.example.tld ServerAlias www.www.example.tld DocumentRoot /var/www CustomLog /var/log/apache2/www_ssl_access_log combined ErrorLog /var/log/apache2/www_ssl_error_log ServerAdmin webmaster@example.tld <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> </VirtualHost> |
<VirtualHost 10.0.0.1:80> ServerName www.example.tld ServerAlias www.www.example.tld DocumentRoot /var/www CustomLog /var/log/apache2/www_access_log combined ErrorLog /var/log/apache2/www_error_log ServerAdmin webmaster@localhost <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> </VirtualHost> <VirtualHost 10.0.0.1:443> ServerName www.example.tld ServerAlias www.www.example.tld DocumentRoot /var/www CustomLog /var/log/apache2/www_ssl_access_log combined ErrorLog /var/log/apache2/www_ssl_error_log ServerAdmin webmaster@example.tld <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> </VirtualHost>
Anpassung des vhosts
Fügen Sie nun folgende Direktiven ein:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <VirtualHost 10.0.0.1:443> ServerName www.example.tld ServerAlias www.example.tld DocumentRoot /var/www CustomLog /var/log/apache2/vh1_ssl_access_log combined ErrorLog /var/log/apache2/vh1_ssl_error_log ServerAdmin webmaster@example.tld <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> # SSL Config SSLEngine on SSLCertificateFile /etc/ssl/certs/serverzertifikat.crt SSLCertificateKeyFile /etc/ssl/certs/meinschluessel.key SSLCACertificateFile /etc/ssl/certs/intermediate-bundle.crt # SSL Config </VirtualHost> |
<VirtualHost 10.0.0.1:443> ServerName www.example.tld ServerAlias www.example.tld DocumentRoot /var/www CustomLog /var/log/apache2/vh1_ssl_access_log combined ErrorLog /var/log/apache2/vh1_ssl_error_log ServerAdmin webmaster@example.tld <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> # SSL Config SSLEngine on SSLCertificateFile /etc/ssl/certs/serverzertifikat.crt SSLCertificateKeyFile /etc/ssl/certs/meinschluessel.key SSLCACertificateFile /etc/ssl/certs/intermediate-bundle.crt # SSL Config </VirtualHost>
Verwendete Direktiven
SSLEngine on Aktiviert SSL
SSLCertificateFile /etc/ssl/certs/serverzertifikat.crt Pfad zum Serverzertifikat
SSLCertificateKeyFile /etc/ssl/certs/meinschluessel.key Pfad zum Privaten Schlüssel
SSLCACertificateFile /etc/ssl/certs/intermediate-bundle.crt Pfad zu den Zwischenzertifikaten
Neustart Apache
Nach der Änderung muss Apache neu gestartet werden, z.B.:
service apache2 restart
oder
/etc/init.d/apache2 restart