HTTPS mit Virtual Hosts in XAMPP nutzen

Bisher habe ich bei der lokalen Entwicklung immer auf HTTPS verzichtet. Nun musste ich mich für ein Projekt aber doch mit dem Thema auseinandersetzen, wie ein SSL-Zertifikat unter XAMPP mit Virtual Hosts eingesetzt werden kann.

Zum Ziel kommen wir in zwei Schritten:

  1. Einrichtung eines SSL-Zertifikats.
  2. Einrichtung des Virtual Hosts.

Voraussetzung ist (natürlich) XAMPP.

Einrichtung eines SSL-Zertifikats

Eine gute Anleitung zur Einrichtung gibt es auf robsnotebook.com. Sie ist zwar schon älter (von 2007), funktioniert aber noch bestens. Um ein Zertifikat zu erstellen, könnt ihr in der Kommandozeile wie folgt vorgehen:

  1. Geht in das Apache-Verzeichnis C:\xampp\apache.
  2. Führt makecert aus.
  3. Gebt eine PEM-Passphrase und die weiteren Informationen ein. Bei Common Name solltet ihr die Domain angeben, die ihr nachher für den Virtual Host benutzen wollt, damit das Zertifikat für diese Domain ausgestellt wird.
  4. Nachdem ihr alle Schritte ausgeführt habt, könnt ihr das Zertifikat gegebenenfalls noch in euren Browser importieren (es liegt unter C:/xampp/apache/conf/ssl.crt/server.crt). Nach dem Aufruf der Website werdet ihr aber trotzdem eine Warnung erhalten, da das Zertifikat selbst ausgestellt ist – hier müsst ihr dann eine Ausnahme hinzufügen.

Einrichtung des Virtual Hosts mit HTTPS

Eintrag in die Hosts-Datei von Windows

Zunächst kurz zur Vorbereitung: Um Windows wissen zu lassen, dass zum Beispiel die Domain florianbrinkmann.dev auf die IP-Adresse 127.0.0.1 (localhost) weisen soll, müssen wir einen Eintrag in die hosts-Datei von Windows einfügen. Die Datei findet ihr unter C:\Windows\System32\drivers\etc. Um sie zu bearbeiten, braucht ihr Admin-Rechte (sucht in Windows nach dem Editor, klickt mit rechts drauf und wählt Als Administrator ausführen).

In der hosts-Datei fügt ihr nun am Ende einen Eintrag nach folgendem Muster ein:

127.0.0.1 florianbrinkmann.dev

Ihr müsst die Domain durch eure eigene Entwicklungs-Domain ersetzen. Anschließend könnt ihr die Datei speichern und schließen.

Anlegen des Virtual Hosts im Apache

Die Virtual Hosts im Apache findet ihr in der Datei C:\xampp\apache\conf\extra\httpd-vhosts.conf.  Öffnet die Datei und fügt einen Eintrag nach folgenden Muster ein (hierbei war eine Antwort von stackoverflow.com sehr hilfreich – die zugehörige Frage auch, sie hat mich nämlich auf den Artikel zur SSL-Zertifikat-Einrichtung gebracht):

<VirtualHost florianbrinkmann.dev:80>
	DocumentRoot "C:\xampp\htdocs\florianbrinkmann.dev"
	ServerName florianbrinkmann.dev
	<Directory "C:\xampp\htdocs\florianbrinkmann.dev">
	Order allow,deny
	Allow from all
	</Directory>
</VirtualHost>

<VirtualHost florianbrinkmann.dev:443>
	DocumentRoot "C:\xampp\htdocs\florianbrinkmann.dev"
	ServerName florianbrinkmann.dev
	SSLEngine On
	SSLCertificateFile "C:/xampp/apache/conf/ssl.crt/server.crt"
	SSLCertificateKeyFile "C:/xampp/apache/conf/ssl.key/server.key"
	<Directory "C:\xampp\htdocs\florianbrinkmann.dev">
	Order allow,deny
	Allow from all
	</Directory>
</VirtualHost>

Hier müsst ihr die Einträge von DocumentRoot, ServerName, Directory und die Domain innerhalb des VirtualHost-Elements anpassen. Der erste VirtualHost ist für normale HTTP-Verbindungen, der zweite für Verbindungen über HTTPS.

Eventuell müsst ihr in der Datei C:\xampp\apache\conf\httpd.conf noch den Kommentar vor der folgenden Zeile entfernen:

LoadModule ssl_module modules/mod_ssl.so

Nun könnt ihr den Apache über das XAMPP-Control-Panel neu starten und solltet via HTTPS auf die Entwicklungs-Domain zugreifen können (inlusive Warnung des Browsers …).

Veröffentlicht in Tipps.

Schreib einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.