Добро пожаловать на сайт Headwind MDM - Вопросы и Ответы, где вы можете задавать вопросы и получать ответы от других членов сообщества.

ВАЖНО: пожалуйста, сообщите нам о вашем вопросе через форму обратной связи сайта Headwind MDM! Иначе мы можем не заметить его...

0 голосов
Как установить SSL сертификат на Tomcat, чтобы мобильные устройства подключались бы к серверу через HTTPS протокол?
от (10.3k баллов)

1 Ответ

0 голосов

Tomcat использует собственный формат сертификатов "JKS" (Java Key Store).

Сертификат (публичный ключ), цепочка сертификатов центров сертификации (если есть) и приватный ключ преобразуются в JKS следующим образом:

1. Преобразовать ключ и сертификаты в формат PKCS12

openssl pkcs12 -export -out server.p12 -inkey domain.com.key -in ServerCertificate.cer [-certfile CAchain.crt]

Цепочку сертификатов центров сертификации нужно указывать, если они есть. Эта цепочка создается командой конкатенации всех сертификатов в один файл:

cat CACertificate-ROOT-2.cer CACertificate-INTERMEDIATE-1.cer > CAchain.crt

ВНИМАНИЕ! После выполнения этой команды просмотрите текстовый файл CAchain.crt и проверьте, что границы сертификатов не "склеились", а находятся каждая на своей строке!

-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----

2. Конвертировать PKCS12 в JKS

keytool -importkeystore -destkeystore server.jks -srckeystore server.p12 -srcstoretype PKCS12

Здесь нужно указать пароли на исходное хранилище и результат.

3. Добавить путь к JKS файлу и пароль в настройки tomcat (файл /etc/tomcat8/server.xml):

 <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"               maxThreads="150" SSLEnabled="true" defaultSSLHostConfigName="your-domain.com">

        <SSLHostConfig hostName="your-domain.com">

                <Certificate certificateKeystoreFile="/var/lib/tomcat8/ssl/server.jks" type="RSA" certificateKeystorePassword="******" />

        </SSLHostConfig>

    </Connector>

4. Изменить URL в конфигурации Headwind MDM (ROOT.xml or hmdm.xml) с HTTP на HTTPS

<Parameter name="base.url" value="https://your-domain.com"/>

5. Перезапустить tomcat

service tomcat8 restart

6. При необходимости перенаправить порт 443 на 8443, в том числе по локальному сетевому интерфейсу

/sbin/iptables -A PREROUTING -t nat -i eno1 -p tcp -m tcp -d your-domain.com --dport 443 -j REDIRECT --to-ports 8443

/sbin/iptables -A OUTPUT -t nat -o lo -p tcp -m tcp -d your-domain.com --dport 443 -j REDIRECT --to-ports 8443

7. Проверить, что настройка iptables сохраняется после перезагрузки, при необходимости сделать перманентную настройку iptables.

от (10.3k баллов)
редактировать от
...