Die Umleitung von der https-URL-Anforderung zur http-Server-IP funktioniert nicht

Die Umleitung von der https-URL-Anforderung zur http-Server-IP funktioniert nicht

Beim zweiten Aufruf meiner Apache 2.4 Server-Konfigurations-Vhost-Datei habe ich:

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName 51.89.98.21
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^http://51.89.98.21$1 [NC]
    RewriteRule ^(.*)$ http://51.89.98.21/ [R=permanent,END,QSA]            
</VirtualHost>

Der dritte Config-Vhost ist dieser (Abschnitt):

<VirtualHost *:443>
   ServerAdmin  [email protected]
   ServerName   www.developmentscout.com
   ServerAlias  developmentscout.com   
   UseCanonicalName Off
   DocumentRoot "/var/www/vhosts/developmentscout.com/htdocs"
   
RewriteEngine On

RewriteCond %{REQUEST_URI} ^\.well\-known [NC,OR]
RewriteCond %{HTTP_HOST} ^developmentscout.com$ [NC]
RewriteRule ^ https://www.developmentscout.com%{REQUEST_URI} [END,QSA,R=permanent]

SSLEngine on
SSLCertificateKeyFile /etc/letsencrypt/live/developmentscout.com-0002/privkey.pem
SSLCertificateFile /etc/letsencrypt/live/developmentscout.com-0002/cert.pem
SSLCertificateChainFile /etc/letsencrypt/live/developmentscout.com-0002/chain.pem
...

Der Link vonhttps://51.89.98.21/industrie/automatisierung/ipc/11315-edge-computing sollte umgeleitet werden aufhttp://51.89.98.21ABER stattdessen habe ich eine Weiterleitung zu:http://51.89.98.21/industrie/automatisierung/ipc/11315-edge-computing, das mir den Inhalt der „echten“ Seite anzeigt.

Der zweite virtuelle Host wird nie erreicht, da ich im Protokoll Folgendes habe:

[Tue Oct 24 18:44:23.156932 2023] [ssl:debug] [pid 8958:tid 140379014039296] ssl_engine_kernel.c(383): [client 98.58.102.21:64004] AH02034: Nachfolgende (Nr. 3) HTTPS-Anforderung für Kind 22272 (Server) empfangenwww.developmentscout.com:443), Referrer:https://51.89.98.21/industrie/automatisierung/ipc/11315-edge-computing

Offensichtlich geht die https-Anfrage an die falsche URL, die ein falsches SSL-Zertifikat aufruft, dann wird eine http-Verbindung verwendet und der Inhalt angezeigt.

Ich habe versucht, mit Letsencrypt ein SSL-Zertifikat zu erstellen, aber das ist für eine IP nicht möglich. Daher wären alle Vorschläge, wie man das Problem lösen kann, großartig.

AKTUALISIEREN: Inzwischen habe ich ein selbstsigniertes Zertifikat für 51.89.98.21 erstellt. Der (zweite nach dem Standard-) vhost ist:

    <VirtualHost *:443>
        ServerAdmin [email protected]
        ServerName 51.89.98.21
        SSLEngine on
        SSLCertificateKeyFile /etc/ca-certificates/key.pem
        SSLCertificateFile /etc/ca-certificates/cert.pem
        RewriteEngine On
        RewriteCond %{HTTP_HOST} ^51.89.98.21/$ [NC]
        RewriteRule ^ https://51.89.98.21/ [END,QSA,R=permanent]
        DocumentRoot /var/www/server3           
    </VirtualHost>

Wenn ich diese URL aufrufe:https://51.89.98.21/branche/automobil/11819-e-auto-laden-ladestecker-ladekabel Ich habe die Fehlermeldung „Nicht gefunden 404“ erhalten.

Antwort1

AI sagte mir, dass der Zustand

RewriteCond %{HTTP_HOST} ^51.89.98.21/$ [NC]

wird nie wahr sein, da %{HTTP_HOST} nur den Domänennamen (oder in diesem Fall die IP) ohne den abschließenden Schrägstrich enthält.

Die Änderung sollte also folgendermaßen lauten:

RewriteCond %{REQUEST_URI} !^/$

verwandte Informationen