XAMPP auf SSL konfigurieren

blz

Bekanntes Mitglied
Hallo,
ich habe XAMPP aufgesetzt.
Ich möchte nun, dass der Server über das Internet erreichbar ist.
Hierzu habe ich bereits folgendes unternommen:

  • Habe ein Portweiterleitung von Port 80 extern auf Port 80 intern eingerichtet
  • Habe ein Portweiterleitung von Port 443 extern auf Port 443 intern eingerichtet
  • Habe eine htaccess-Datei im Ordner htdocs platziert und die zugehörige htpasswd-Datei im Ordner xampp
  • Habe ein TLS Zertifikat generiert und unter folgenden Pfaden abgelegt:
    • \xampp\apache\conf\ssl.crt\
    • \xampp\apache\conf\ssl.key\
  • Habe versucht, HTTPS zu erzwingen, in dem ich in der Datei
    xampp\apache\conf\extra\httpd-xampp.conf
    die roten Zeilen ergänzt habe:

    Ganz oben in der Datei:
    <IfModule mod_rewrite.c>
    RewriteEngine On


    # Redirect /phpMyAdmin folder to https
    RewriteCond %{HTTPS} !=on
    RewriteCond %{REQUEST_URI} phpmyadmin
    RewriteRule ^(.*) https://%{SERVER_NAME}$1 [R,L]

    # Redirect /htdocs folder to https
    RewriteCond %{HTTPS} !=on
    RewriteCond %{REQUEST_URI} htdocs
    RewriteRule ^(.*) https://%{SERVER_NAME}$1 [R,L]
    </IfModule>



    Alias /phpmyadmin "C:/xampp/phpMyAdmin/"
    <Directory "C:/xampp/phpMyAdmin">
    AllowOverride AuthConfig
    # Require local
    Require all granted
    ErrorDocument 403 /error/XAMPP_FORBIDDEN.html.var
    SSLRequireSSL
    </Directory>



    Wenn ich nun die Adresse im Browser eingebe, funktioniert die Umleitung auf https nur bei phpMyAdmin. Eine im htdocs Ordner liegende Webseite erreiche ich weiterhin per http.
    Erscheint mir auch logisch, denn da fehlt ja noch das SSLRequiereSLL.
    Allerdings finde ich in der httpd-xampp.conf keinen mir geeignet erscheinenden Block, wo ich das reinschreiben könnte ...

 

mihe7

Top Contributor
Wir machen das einfach bei der Definition der virtuellen Hosts. Der für Port 80 hat eine Rewrite-Condition auf 443 und der für 443 hat im Directory-Eintrag (für das Directory, das als DocumentRoot angegeben ist) SSLRequireSSL stehen.
 

blz

Bekanntes Mitglied
Hallo,
könntest du das ein bisschen genauer erklären.
ich bin kein Netzwerker und suche mir das ganze recht mühsam zusammen ... :)
 

mihe7

Top Contributor
Naja, das ist die Config für Port 80:
Code:
<VirtualHost IP_ADDRESS_DES_SERVERS:80>
        ServerName ...
        ...
        RewriteEngine On
        RewriteCond %{REQUEST_URI} !^/\.well-known/
        RewriteRule ^.* https://%{SERVER_NAME}:443 [R,L]
</VirutalHost>
Und für Port 443 gibt es eine eigene:
Code:
<VirtualHost IP_ADDRESS_DES_SERVERS:443>
        ServerName ...
        ...
        DocumentRoot /path/to/docroot
        ...
        <Directory /path/to/docroot>
                <IfModule mod_ssl.c>
                        SSLRequireSSL
                </IfModule>
                ...
        </Directoy>
</VirtualHost>
 

blz

Bekanntes Mitglied
Ok,
habe nachgelesen, wofür VHs da sind.
Anscheinend braucht man sie zwangsläufig nur, wenn man auf einem Server mehrere Adressen betreiben möchte.
Reicht dann auch schon die Portnummer, damit es sich in diesem Kontext um eine andere Adresse handelt?
 

blz

Bekanntes Mitglied
ok, ich habe das jetzt wie folgt in die bisher leere httpd-vhosts.conf eingetragen:

Code:
<VirtualHost 172.17.128.5:80>
    ServerName srvxampp
    DocumentRoot "C:/xampp/htdocs"
    RewriteEngine On
    RewriteCond %{REQUEST_URI} !^/\.well-known/
    RewriteRule ^.* https://%{SERVER_NAME}:443 [R,L]
</VirtualHost>


<VirtualHost 172.17.128.5:443>
        ServerName srvxampp
        DocumentRoot "C:/xampp/htdocs"
        <Directory "C:/xampp/htdocs">
                <IfModule mod_ssl.c>
                        SSLRequireSSL
                </IfModule>
        </Directoy>
</VirtualHost>

Wenn ich den apache nun aber neustarten will, tut er das nicht mehr und bringt folgende Fehlermeldung:
17:50:43 [Apache] Fehler: Apache wurde unerwartet beendet
17:50:43 [Apache] Ursache könnte ein geblockter Port, fehlende Abhängigkeiten,
17:50:43 [Apache] fehlende Berechtigungen, ein Absturz oder ein Abbruch einer anderen Methode sein.
17:50:43 [Apache] Drücke den Logs Button um error logs zu sehen und prüfe
17:50:43 [Apache] im Windows Event Viewer für weitere Hinweise
17:50:43 [Apache] Wenn du weitere Hilfe benötigst, kopiere den kompletten Inhalt des Log Fensters
17:50:43 [Apache] und füge ihn als Ergänzung in einem neuen Forum Eintrag hinzu.

ich habe die Adressen


alle im lokalen Browser ausprobiert, sie funktionieren!
Wenn ich die ursprüngliche vhosts Datei wieder hernehme, startet der Server auch wieder.
 

blz

Bekanntes Mitglied
und zweite Nachfrage:

was ist schlechter/anders, wenn ich einfach nur das Folgende in die vhosts eintrage (so funktioniert es nämlich):

<VirtualHost *:80>
ServerName srvxampp
DocumentRoot "C:/xampp/htdocs"
Redirect / https://webadresse_von_außen.de:443
</VirtualHost>
 

Neue Themen


Oben