2017-10-09 3 views
0

SSLをWebアプリケーションにセットアップしました。このアプリケーションの標準ポートは8080、SSLポートは8443です。私はApacheのhttpd設定に問題があります。これまで私が変更Apache httpdを使用して2つの異なるポートをリダイレクトする方法は?

https://1.2.3.4:8443 

のhttpd.conf:このURLに

http://1.2.3.4:8080 
https://1.2.3.4:8080 
http://1.2.3.4:8443 

:私は下に記載されているすべてのURLをリダイレクトしたい

Listen 1.2.3.4:8080 

<VirtualHost *:8080> 
    ServerName 1.2.3.4 
    Redirect "/" "https://1.2.3.4:8443" 
</VirtualHost> 

これは、リストされた最初のURLのために正常に動作します他のURLではそうではありません。私は別の設定を試みたが、うまくいかなかった。誰も私にこの問題を手伝ってもらえますか? HTTPポート8080とHTTPS(SSL)上で提供されている場合は

答えて

1
https://1.2.3.4:8080 
http://1.2.3.4:8443 

は、上記のURLのいずれもが、リダイレクトをトリガーすることができるようにするためにアクセス可能になります8443です。 (?!)あなたのconfig HTTPで

のみポート8080で、HTTPS のみポート8443

リファレンスです:あなたのhttpd.confの
https://serverfault.com/questions/359461/apache-answer-both-http-and-https-on-the-same-port

+0

[OK]を、私は理解し、正しいです。しかし、httpdがポート8080でリッスンするとき、 'http://1.2.3.4:8443'を' https://10.200.200.91:8443'にリダイレクトする方法はありますか? –

+0

HTTPリダイレクトは、サーバー上でリクエストが解決された後にのみ発生します。 HTTPがポート8080でリッスンしている場合、 'http://1.2.3.4:8443'のようなリクエストは決して正しく解決されず、ブラウザはタイムアウトします。必要な処理をするためには、ApacheがSSLにすでに共有されているポート8080と8443のHTTPに応答する必要があります。これはApache AFAIKでは不可能です。このようなリクエストを傍受して迂回させることができるフロントエンドプロキシでは、これが可能かもしれないと思いますか? – MrWhite

0

設定のmod_rewriteのは、このような達成するためにA例えば

リダイレクト:

LoadModule rewrite_module modules/mod_rewrite.so 
RewriteEngine on 
<VirtualHost 1.2.3.4:8080> 
    <IfModule mod_rewrite.c> 
    RewriteCond %{SERVER_PORT} !^8443$ 
    RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [L,R] 
    </IfModule> 
</VirtualHost> 

または

LoadModule rewrite_module modules/mod_rewrite.so 
RewriteEngine on 
RewriteCond %{SERVER_PORT} =8080 
RewriteRule ^(.*) https://%{HTTP_HOST}:8443/$1 [L,R] 
+0

最初のサンプルコードは私のためには機能しません。 2番目のコードは、最初の投稿のコードと同じです。 –

+0

ここで行ったことは、標準のHTTPからHTTPS(一時的)リダイレクトを実装することです。これは、OPが求めているものではありません。 – MrWhite

関連する問題