Назад | Перейти на главную страницу

В Tomcat принудительно http-соединение с https

Я пытаюсь установить соединение с http://localhost:8443 к https://localhost:8443. Сайт работает правильно, если они переходят на https://localhost:8443. Если пользователь забыл s в https я бы хотел, чтобы tomcat поправил их.

У меня есть только один соединитель для https, определяемый как:

<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. Я знаю, что это возможно с помощью apache mod_rewrite или другого аналогичного решения, но я не хочу устанавливать какие-либо другие службы на машине Windows.

если ваше первое предложение не является опечаткой, просто добавьте соединитель для http на порт 8080 и добавьте перенаправление, как вы описали. вы не можете прослушивать http и https на одном и том же порту. поэтому позвольте http прослушивать порт 8080 и https на порту 8443.