Einrichten von SSL (https) unter apache2
Voraussetzungen: Rootserver/vServer mit root Rechten
1. Zertifikat einrichten
(Es wird davon ausgegangen, dass Apache unter /etc/apache2/ liegt)
mkdir /etc/apache2/ssl
openssl req $@ -new -x509 -days 365 -nodes -out /etc/apache2/ssl/apache.crt -keyout /etc/apache2/apache.key
Es werden hier ein paar Fragen gestellt. Bei Country sollte „DE“ angegeben werden.
Ansonsten ausfüllen oder leer lassen.
Du solltest nun zwei neue Dateien haben
/etc/apache2/apache.key
/etc/apache2/ssl/apache.crt
führe jetzt noch Folgendes aus:
chmod 600 /etc/apache2/ssl/apache.crt
2. Apache2 Konfigurieren
In der Datei „ports.conf“ folgendes eintragen
(Falls die Datei nicht existiert, dann in der httpd.conf)
Listen 80 (sollte schon eingetragen sein)
Listen 443 (steht oftmals auch schon in einem if-modul integriert drinnen.)
Unter /etc/apache2/sites-available/default folgendes:
NameVirtualHost *
ersetzen durch
NameVirtualHost *:443
NameVirtualHost *:80
Wenn der Eintrag NameVirtualHost * in der ports.conf zu finden ist sollte dieser dort entfernt werden.
3. VHost erstellen
In der /etc/apache2/sites-available/default, die Virtual-Host Beschreibung (ohne SSL) duplizieren
Das Ergebnis ist dann ungefähr so:
ServerAdmin webmaster@localhost
[…]
ServerAdmin webmaster@localhost
[…]
Nun erstmal angeben, dass zwei Ports gemeint sind:
Das schaut dann so aus:
ServerAdmin webmaster@localhost
[…]
ServerAdmin webmaster@localhost
[…]
*:443 wird zum SSL-Port
Hier also noch den Pfad zum Zertifikat angeben:
ServerAdmin webmaster@localhost
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/apache.key
[…]
4. Letzte Schritte
Nun muss SSL-Mod aktiviert werden
Als Root folgendes eingeben
a2enmod ssl
Die Antwort sollte ungefähr so lauten:
Module ssl installed; run /etc/init.d/apache2 force-reload to enable.
Apache kann neu gestartet werden
apache2ctl restart
Falls es nicht funktioniert, schaue dir die logs an unter:
/var/log/apache2/error.log
Wenn du beim Apache2 Restart den Fehler „[warn] NameVirtualHost *:80 has no VirtualHosts“ erhältst, einfach in der
nano /etc/apache2/ports.conf
NameVirtualHost *:80 auskommentieren. Das sollte dann so aussehen:
[…]
#NameVirtualHost *:80
Listen 80
[…]
Nach dem Speichern sollte Apache2 ohne Fehler neu starten.
Bei Fragen schreibe einfach einen Kommentar zu diesem Artikel.