web-dev-qa-db-ja.com

Tomcatのリダイレクトポートは何ですか?

Tomcatのドキュメントを理解するのは難しく、server.xmlを見ると、ドキュメントで適切に、または広範に説明されていないため、理解しにくいポートのサラダが見つかります。

たとえば、構成ファイルのこの行はserver.xml

<Connector port="8345" protocol="AJP/1.3" redirectPort="9875" />

そして、ここでさらに別のリダイレクトポートを見つけることができます:

<Connector executor="tomcatThreadPool"
               port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" /> 

コネクタポートの機能を理解しました。最初のケースでは、それを使用してApacheでワーカーを作成し、そこに送信します。2番目のケースでは、Tomcatに直接アクセスするためのポートを開きます。ただし、リダイレクトポートに関しては、あいまいになります。

Tomcatのドキュメントによるajpポートの説明は次のとおりです。

このコネクターが非SSL要求をサポートしていて、マッチングにSSLトランスポートが必要な要求を受信した場合、Catalinaはここで指定されたポート番号に要求を自動的にリダイレクトします。

私は常に1024を超えるランダムなリダイレクトポートを選択し、それが機能します。

しかし、これはいつ実用化されるのでしょうか?リクエストにSSLトランスポートが必要な場合、どのようにしてわかりますか?

Tomcatモジュールを実行しているサテライトサーバーがあります。このモジュールは、Apacheを使用してメインサーバーからajpコネクタにトラフィックをリダイレクトしたり、その逆を行ったりすることで有効になります。

メインサーバーでは、Apacheでhttpsが適用されます。これは、すべての要求がサテライトサーバーに暗号化またはプレーンテキストで送信されることを意味しますか?ポート8080を介してサテライトサーバーにアクセスする場合、暗号化されないことは知っていますが、これがメインサーバーにリダイレクトされるトラフィックにも当てはまるのか、このリダイレクトポートはどこで有効になるのでしょうか。

13
Ulukai

ドキュメントで定義されているように、SSLリクエストがサーバーに送信されるとリダイレクトポートが機能し、httpコネクタポートはSSLリクエストを処理できないため、定義されたポートにリダイレクトします。ただし、それらはserver.xmlファイルで定義された別のセクションである必要があります。このセクションでは、定義されたリダイレクトポートが、SSL要求を処理するためのコネクタポートとして機能します。たとえば、httpリクエストをポート80で処理し、httpsリクエストをポート443で処理する場合、server.xmlは次のようになります。

<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" />

<Connector port="443" protocol="org.Apache.coyote.http11.Http11Protocol" SSLEnabled="true" scheme="https" secure="true" sslProtocol="TLS" keystoreFile="/path/to/kestorefile" keystorePass="my_keystore_password"/>

Keystorefileは、Webサイトのssl証明書です。

リダイレクトポートをコネクタポートとして他のセクションを構成しない場合、リクエストはそのポートにリダイレクトされません。たとえば、Webサイトがsslリクエストをサポートしておらず、そのWebサイトにhttpsリクエストを送信しようとすると、ブラウザにSecure Connection Failedのようなエラーが表示されます。

7
Gaurav Pundir