есть недопонимание, что происходит с Tomcat!
Мое приложение развернуто как ROOT.war на Tomcat. У меня есть один URL-адрес, доступ к которому я хочу получить только через SSL.
Tomcat хорошо обрабатывает этот URL:
http: // локальный: 443 / securedUrl
и не обрабатывать этот URL:
https: // localhost / securedUrl
Зачем?
Фрагмент файла $ CATALINA_HOME / conf / server.xml:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="443" />
<Connector port="443"
maxThreads="150"
minSpareThreads="25"
maxSpareThreads="75"
enableLookups="true"
disableUploadTimeout="true"
acceptCount="100"
debug="0"
scheme="https"
secure="true"
clientAuth="false"
sslProtocol="TLS"
keystoreFile="/webapps/ROOT/myapp.keystore.bin"
keystorePass="lalala" />
Фрагмент файла $ CATALINA_HOME / webapps / ROOT / WEB-INF / web.xml:
<security-constraint>
<web-resource-collection>
<web-resource-name>secured_postbacks</web-resource-name>
<url-pattern>/securedUrl</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
</web-app>
HTTP может успешно работать на порту 443. HTTPS - это не HTTP, это HTTP через TLS или SSL, и он может успешно работать на порту 80.
Они просто не одно и то же: http: // локальный: 443 / securedUrl и https: // localhost / securedUrl не указывают на один и тот же ресурс.