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.