Установка Tomcat 8, SSL

Инструкция по полуавтоматической установке Tomcat 8.5 с самописным SSL сертификатом.
Всё ставилось на Ubuntu/Debian Linux server с Java 7+.

  1. Загрузить Tomcat 8.5.30 с официального сайта:
wget --no-check-certificate -P /tmp https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.30/bin/apache-tomcat-8.5.30.tar.gz
  1. Распаковать из архива в каталог /usr/local:
tar xvzf /tmp/apache-tomcat-8.5.30.tar.gz -C /usr/local
  1. Если на сервере уже имеются сконфигурированные сервера, то необходимо изменить рабочие порты Tomcat-a (напр. не 8xxx, а сделаем 7xxx):
sed -i -- 's/8005/7005/g' /usr/local/apache-tomcat-8.5.30/conf/server.xml
sed -i -- 's/8080/7070/g' /usr/local/apache-tomcat-8.5.30/conf/server.xml
sed -i -- 's/8443/7443/g' /usr/local/apache-tomcat-8.5.30/conf/server.xml
  1. Поправим временную зону для сервера (например, на рижскую):
sed -i -- 's/JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS"/JAVA_OPTS="$JAVA_OPTS $JSSE_OPTS -Duser.timezone=Europe\/Riga"/g' /usr/local/apache-tomcat-8.5.30/bin/catalina.sh
  1. Сделаем для SSL/HTTPS новый KeyStore файл:
keytool -keysize 2048 -genkey -noprompt -alias tomcat4tis -keyalg RSA -dname "CN=Mega Developer, OU=Dev, O=Company, L=Riga, ST=Latvia, C=LV" -keystore /usr/local/apache-tomcat-8.5.30/conf/mystoretomcat.jks -storepass cizuvori97 -keypass cizuvori97 -deststoretype pkcs12

Это - самоподписанный, “self-signed” сертификат. Чтобы использовать реальный SSL/HTTPS сертификат, как правило, нужно согласовать это дело с клиентом. Ну или - Letsencrypt ;-)

  1. Добавим SSL конфигурацию в Tomcat:
sed -i -- 's/\/Engine>/\/Engine> <Connector port="7443" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" SSLEnabled="true" protocol="org.apache.coyote.http11.Http11NioProtocol" keystoreFile="\/usr\/local\/apache-tomcat-8.5.30\/conf\/mystoretomcat.jks" keystorePass="cizuvori97" keystoreType="PKCS12" clientAuth="false" sslProtocol="TLS" \/>/g' /usr/local/apache-tomcat-8.5.30/conf/server.xml

sed -i -- 's/\/welcome-file-list>/\/welcome-file-list> <security-constraint><web-resource-collection><web-resource-name>Entire Application<\/web-resource-name><url-pattern>\/*<\/url-pattern><\/web-resource-collection><user-data-constraint><transport-guarantee>CONFIDENTIAL<\/transport-guarantee><\/user-data-constraint><\/security-constraint>/g' /usr/local/apache-tomcat-8.5.30/conf/web.xml
  1. Остановить Tomcat (если работает)
/usr/local/apache-tomcat-8.5.30/bin/shutdown.sh
  1. Запустить Tomcat:
/usr/local/apache-tomcat-8.5.30/bin/startup.sh
  1. Сервер должен быть доступен по адресу: "https://my-dns-for-this-server:7443"

  2. Всё.