https-URL リクエストから http-server IP へのリダイレクトが機能していません

https-URL リクエストから http-server IP へのリダイレクトが機能していません

Apache 2.4 サーバーの config-vhost ファイルの 2 回目の呼び出しには次の内容が含まれています。

<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>

3 番目の config-vhost は次のセクションです。

<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
...

リンク先https://51.89.98.21/industrie/automatisierung/ipc/11315-エッジコンピューティング リダイレクトするhttp://51.89.98.21しかし、代わりに次のリダイレクトがあります:http://51.89.98.21/industrie/automatisierung/ipc/11315-エッジコンピューティング、これは「実際の」ページの内容を示しています。

ログに次の内容が記録されているため、2 番目の vhost には到達できません。

[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: 子 22272 (サーバー) の後続 (No.3) HTTPS 要求を受信しましたwww.developmentscout.com:443)、リファラー:https://51.89.98.21/industrie/automatisierung/ipc/11315-エッジコンピューティング

明らかに、https リクエストは間違った URL に送信され、間違った SSL 証明書が呼び出され、その後 http 接続が使用され、コンテンツが表示されます。

Letsencrypt を使用して SSL 証明書を作成しようとしましたが、IP では不可能です。この問題を解決する方法について何かアドバイスがあれば、ぜひ教えてください。

アップデート: その間、51.89.98.21 の自己署名証明書を作成しました。(デフォルトの 2 番目の) vhost は次のとおりです。

    <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>

この URL を呼び出すと:オートモービル 「見つかりません 404」というエラーが出ました。

答え1

AIは私に、その状態は

書き換え条件 %{HTTP_HOST} ^51.89.98.21/$ [NC]

%{HTTP_HOST} には末尾のスラッシュのないドメイン名 (この場合は IP) のみが含まれるため、これは true にはなりません。

したがって、変更は次のようになります。

書き換え条件 %{REQUEST_URI} !^/$

関連情報