Эта история началась в середине декабря 2017 года утром, когда вышло очередное обновление браузера chrome и он насильно начал редиректить на https протокол. Так случилось, что jira находилась на этом домене, но работала под не защищенным протоколом http и как принято — руки не доходили установить сертификат, ведь это не продакш сервер, но chrome решил за нас 🙂 Было принято решение в оперативном режиме перевести все поддомены на https и jira в том числе. Вот тут и началось…
При попытке перевести jira на https столкнулся с несколькими проблемами
- все инструкции связаны с самоподписанным сертификатом
- она использует свой формат ключей
- проблема найти нормальную инструкцию
Потратив кучу времени на поиск полезной информации, наткнулся в итоге на два блога, спасибо им за советы, ссылки на их статьи внизу. Сертификат подключается за 15 минут в 2 этапа.
Этап первый. Импорт существующей пары ключей SSL / сертификата в хранилище ключей Java.
Вам нужны Java и openssl и должны быть сертификат и ключ в формате PEM. Ключ называется jira.key и сертификат jira.crt.
Преобразовываем их в один файл PKCS12 с помощью команды:
openssl pkcs12 -export -in jira.crt -inkey jira.key> jira.p12
Вам будут предложены различные пароли (пароль для доступа к ключу (если установлен), а затем пароль для создаваемого файла PKCS12).
Импортируйте файл PKCS12 в хранилище ключей с помощью команды:
keytool -importkeystore -srckeystore jira.p12 -destkeystore jira.jks -srcstoretype pkcs12
Теперь у вас есть хранилище ключей с именем jira.jks,содержащее требуемый сертификат / ключ.
Этап второй. Настройка Jira Tomcat Server.
Открываем домашнюю директорию(папку) JIRA и находим файл server.xml (JIRA-INSTALL-DIR/conf)
Необходимо убрать комментирование (отключение в данном случае) использования ssl , прописать путь к хранилищу ключей и перезагрузить JIRA server
<Connector protocol="org.apache.coyote.http11.Http11Protocol" SSLEnabled="true" port="443" scheme="https" secure="true" useBodyEncodingForURI="true" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" enableLookups="false" disableUploadTimeout="true" acceptCount="100" clientAuth="false" sslProtocol="TLS" keystoreFile="/opt/jira/jira.jks" keystorePass="jirahttps" keystoreType="JKS" />
Ура, так было просто! Надеюсь эта статья пригодится тем, кто столкнется с похожей проблемой. Добра всем 🙂
Благодарности: