tomcatでhttp接続をhttpsに強制する

tomcatでhttp接続をhttpsに強制する

http://localhost:8443への接続を強制しようとしていますhttps://localhost:8443。 にアクセスするとサイトは正常に動作しますhttps://localhost:8443。ユーザーがshttps では、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:8080https://localhost:8443コネクタ8080が定義している場合)リダイレクトポート(8443 など)。

スタンドアロンの Tomcat サーバーでもこれが可能かどうかはわかりません。Apache mod_rewrite または他の同様のソリューションでこれが可能であることはわかっていますが、Windows マシンに他のサービスをインストールしたくありません。

答え1

最初の文がタイプミスでない場合は、ポート 8080 に http のコネクタを追加し、説明したようにリダイレクトを追加します。http と https を同じポートでリッスンすることはできません。したがって、http はポート 8080 でリッスンし、https はポート 8443 でリッスンするようにしてください。

関連情報