Единственный способ запустить https - написать соответствующий соединитель в файле server.xml
под тегом <service>
.После настройки соединителя вы можете получить доступ ко всем приложениям на сервере с помощью http или https.Разница лишь в том, какой разъем используется.Обычно коннекторы для http и https выглядят так:
<Connector port="80" protocol="HTTP/1.1"
maxThreads="150" connectionTimeout="20000"
redirectPort="443"
URIEncoding="UTF-8" compression="on"/>
<Connector port="443" protocol="HTTP/1.1"
maxThreads="150" connectionTimeout="20000"
SSLEnabled="true" scheme="https" secure="true"
keystoreFile="conf/.keystore"
keystorePass="changeit"
clientAuth="false" sslProtocol="TLS"
URIEncoding="UTF-8" compression="on"/>
Затем вы можете заставить свое приложение всегда использовать https, добавив тег transport-guarantee
к web.xml
, что в итоге будет выглядеть примерно так:*
<security-constraint>
<web-resource-collection>
<web-resource-name>Administrators</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>Administrators</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
Вы можете изменить transport-guarantee
для различных веб-ресурсов, которые вы определяете.Таким образом, позволяя вам защищать определенные части сайта, а не другие.
В самом конце наличие разъема в server.xml
не заставляет вас использовать https для всех приложений.Позволяет использовать только https-разъем.