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" />
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で検証してください。