SSL in der XAMPP-Konfiguration von Apache aktivieren

Bei Entwicklungsarbeiten rund um die Umschaltung von http:// auf https:// in Magento sollte in der lokalen Entwicklungsumgebung SSL aktiviert werden. In XAMPP-Konfiguration von Apache ist SSL als Voreinstellung deaktiviert.

Davon ausgehend, dass virtuelle Hosts und lokale Domains verwendet werden, soll diese Anleitung bei der Aktivierung von SSL unterstützen.

Einrichtung virtueller Domains

Lokale Domains werden in der hosts-Datei verwaltet. Diese Datei befindet sich unter Windows unter:

%SystemRoot%\system32\drivers\etc\hosts

Die hosts-Datei könnte die folgende Zeile enthalten:

127.0.0.1           local.xonu.de

Zum Bearbeiten der hosts-Datei muss der verwendete Texteditor als Administrator gestartet werden!

Einrichtung des virtuellen Hosts

In der XAMPP-Konfiguration von Apache werden virtuelle Hosts in der folgenden Datei verwaltet:

xampp\apache\conf\extra\httpd-vhosts.conf

Überprüfen Sie, dass die Einbettung von httpd-vhosts.conf in der Hauptkonfigurationsdatei httpd.conf (im Verzeichnis xampp\apache\conf) enthalten und aktiv ist, d. h. nicht mit Raute am Zeilenanfang auskommentiert wurde:

Include "conf/extra/httpd-vhosts.conf"

Die Konfiguration des virtuellen Hosts für unverschlüsselte Verbindungen könnte wie folgt aussehen:

<VirtualHost *:80>
    DocumentRoot "/htdocs/local.xonu.de/httpdocs"
    ServerName local.xonu.de
    ErrorLog "logs/xonu-error.log"
    ErrorLog "logs/xonu-custom.log"
</VirtualHost>

Für verschlüsselte Verbindungen muss ein weiterer Block für den Port 443 eingefügt werden:

<VirtualHost *:443>
    DocumentRoot "/htdocs/local.xonu.de/httpdocs"
    ServerName local.xonu.de
    SSLEngine on
    SSLCertificateFile "conf/ssl.crt/server.crt"
    SSLCertificateKeyFile "conf/ssl.key/server.key"
</VirtualHost>

Wie auch das Log-Verzeichnis, wird der Pfad zu den Zertifikat-Dateien relativ zum Hauptverzeichnis von Apache \xampp\apache angegeben. Diese Dateien sind in XAMPP bereits enthalten.

In früheren Versionen von Apache musste noch in xampp\apache\conf\extra\httpd-vhosts.conf nach NameVirtualHost *:80 die neue Zeile mit NameVirtualHost *:443 eingefügt werden. In der aktuellen und zukünftigen Versionen ist dies nicht mehr nötig.

Beim Start von Apache im XAMPP Control Panel könnten folgende Fehler gemeldet werden:

[Apache]     Error: Apache shutdown unexpectedly.
[Apache]     This may be due to a blocked port, missing dependencies,
[Apache]     improper privileges, a crash, or a shutdown by another method.
[Apache]     Check the "/xampp/apache/logs/error.log" file
[Apache]     and the Windows Event Viewer for more clues

In diesem Fall muss noch das SSL-Modul von Apache aktiviert werden. Dazu bitte in httpd.conf die folgende Zeile mit Strg+F finden und die Kommentar-Raute entfernen:

LoadModule ssl_module modules/mod_ssl.so

Sichere Verbindung für ein virtuelles Magento-Verzeichnis erzwingen

Als Nachtrag zum Artikel über Router und Controller in Magento, kann das Laden eines Controllers über eine verschlüsselte Verbindung (sofern konfiguriert) erzwungen werden, sodass von http auf https automatisch weitergeleitet wird:

<config>
<!-- ... -->
    <frontend>
        <routers>
            <eindeutiger_router_name>
                <use>standard</use>
                <args>
                    <module>Xonu_Test</module>
                    <frontName>start</frontName>
                </args>
            </eindeutiger_router_name>
        </routers>

        <!-- Verschlüsselte Verbindung erzwingen: -->
        <secure_url>
            <eindeutiger_url_name>/start</eindeutiger_url_name>
        </secure_url>
    </frontend>
</config>

Mit dieser Konfiguration leitet http://local.xonu.de/start automatisch auf https://local.xonu.de/start weiter.

2 Gedanken zu „SSL in der XAMPP-Konfiguration von Apache aktivieren“

  1. Bei Verbindung zu SSL-Verschlüsselten Seiten kann noch der folgende Fehler gemeldet werden: „SSL Error: unable to get local issuer certificate“.

    Um das Prodblem zu beheben, bitte die aktuelle Datei https://curl.haxx.se/ca/cacert.pem herunterladen und in der php.ini am Ende des Hauptkonfigurationsblocks [PHP] entsprechend verlinken:

    curl.cainfo=“\xampp\php\cacert.pem“

    Nach dem Neustart von Apache sollte der Fehler behoben sein.

Schreibe einen Kommentar zu toti Antworten abbrechen

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