web-dev-qa-db-ja.com

Tomcat 7:https要求をポート8443に自動的にリダイレクトします

Tomcat7では、Webアプリケーションはポート8443であり、httpsのデフォルトポートをリダイレクトできないことを除いて正常に動作します(443)から8443したがって、結果として、アプリケーションにアクセスする必要があるときはいつでも、 ':8443'をURLに含める必要があります。 server.xmlファイルの一部を含めます。 URLにポート情報を入力せずにページをロードできるようにするには、どうすればよいですか?

 <Connector port="8080" protocol="HTTP/1.1"
           connectionTimeout="20000"
           URIEncoding="UTF-8"
           enableLookups="false"
           redirectPort="8443" />

<Connector port="80" protocol="HTTP/1.1"
           connectionTimeout="20000"
           URIEncoding="UTF-8"
           enableLookups="false"
           redirectPort="8443" />

<Connector port="443" protocol="HTTP/1.1"
           connectionTimeout="20000"
           URIEncoding="UTF-8"
           enableLookups="false"
           redirectPort="8443" />
...

<Connector port="8443"
            maxHttpHeaderSize="65536"
            scheme="https"
            secure="true"
            SSLEnabled="true"
            clientAuth="false"
            enableLookups="true"
            acceptCount="100"
            disableUploadTimeout="true"
            maxThreads="200"
            sslProtocol="TLS"
            keystoreFile="/toto/has/a/certificate.jks"
            keystorePass="totohasapassword"
            protocol="org.Apache.coyote.http11.Http11NioProtocol" />
9
jon

Iptablesを使用してcoderanchで簡単なソリューションを見つけました: http://coderanch.com/t/601907/Tomcat/SSL-work

入力する行は次のとおりです。

iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8443

新しい編集

ここに私の完全な答えがあります。前の回答に問題がありました。httpからurlを呼び出したとき、リダイレクトは問題ありませんでしたが、最後には常に「:8443」が追加されていました。

したがって、iptableに関しては、次のように書きました。

Sudo iptables -t nat -I PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-ports 8080
Sudo iptables -t nat -A OUTPUT -p tcp -d <your_ip_address>,<your_ip_address>  --dport 80 -j  REDIRECT --to-port 8080
Sudo iptables -t nat -I PREROUTING -p tcp --destination-port 443 -j REDIRECT --to-ports 8443

また、Tomcat confファイルserver.xmlにリダイレクトを追加することも重要です。

<Connector port="8080"
           enableLookups="false"
           redirectPort="443" />

<Connector port="443" protocol="HTTP/1.1"
           enableLookups="false"
           redirectPort="8443" />

これで、Tomcatが再起動し、すべてが機能するはずです。私はiptable構成の専門家ではないので、運用環境で既存の構成を変更する前にsysadminで検証してください。

16
jon