http://localhost:8443
からhttps://localhost:8443
への接続を強制しようとしています。 https://localhost:8443
に移動すると、サイトは正しく機能します。ユーザーがhttpsでsを忘れた場合に備えて、Tomcatに修正してもらいたいと思います。
Https用のコネクタは1つだけで、次のように定義されています。
<Connector port="8443" rediretPort="8443"
protocol="HTTP/1.1"
connectionTimeout="20000"
SSLEnabled="true"
maxThreads="150"
scheme="https"
secure="true"
clientAuth="false"
sslProtocol="TLS"
keyAlias="alias"
keystoreFile="keystore.jks"
keypass="PASSWORD"
/>
これはWindowsサーバー上にあります。 Tomcat 6はスタンドアロンサーバーです(IISに接続されていません)。
以下を含めるようにweb.xmlを変更しようとしました。
<security-constraint>
<web-resource-collection>
<web-resource-name>Protected Context</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
これは私にはうまくいきません。私が読んだところによると、これはユーザーをhttp://localhost:8080
からhttps://localhost:8443
にリダイレクトします(コネクタ8080がredirectPortを8443として定義した場合)。
これがスタンドアロンのTomcatサーバーでも可能かどうかはわかりません。これはApachemod_rewriteまたは他の同様のソリューションで可能であることは知っていますが、Windowsマシンに他のサービスをインストールしたくありません。
最初の文がタイプミスでない場合は、ポート8080にhttpのコネクタを追加し、説明したようにリダイレクトを追加します。 httpとhttpsを同じポートでリッスンさせることはできません。したがって、httpをポート8080でリッスンさせ、httpsをポート8443でリッスンさせます。