Я пытаюсь принудительно подключиться к http://localhost:8443
. https://localhost:8443
Сайт работает правильно, если они перейдут к https://localhost:8443
. В случае, если пользователь забудетсв 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 определилперенаправлениеПорткак 8443).
Я не уверен, что это вообще возможно с автономным сервером Tomcat. Я знаю, что это возможно с apache mod_rewrite или каким-то другим подобным решением, но я не хочу устанавливать никакую другую службу на машине Windows.
решение1
если ваше первое предложение не опечатка, просто добавьте соединитель для http на порт 8080 и добавьте перенаправление, как вы описали. http и https не могут прослушивать один и тот же порт. поэтому позвольте http прослушивать порт 8080, а https - порт 8443.