Доброго времени суток, дорогие друзья. У меня возникла необходимость настроить https на сервере, который используется в онлайн-игре. Для этого мне понадобится бесплатная регистрация на StartSSL и немного времени. Инструкции на самом сайте StartSSL довольно туманные. Эта публикация призвана пролить свет на детали.
Первым делом проходим простую регистрацию на StartSSL, её результатом будет созданный приватный сертификат. Во время регистрации указываем свои домашние данные. Все данные желательно заполнять латиницей. Сертификат следует обязательно сохранить в безопасном месте. Для этого в вашем любимом браузере идем в настройки, где хранятся сертификаты и экспортируем в файл ваш сертификат.
Второй шаг подразумевает под собой валидацию домена, где будет использован сертификат https. Для этого в панели управления на сайте StartSSL переходим в раздел Validations Wizard и выбираем пункт Domain Name Validation. Выбираем на какой почтовый адрес отправить проверочный код, отправляем, проверяем почту, подтверждаем код — домен подтвержден.
Третий большой шаг. Генерация сертификата. Для этого нам понадобится создать файл-запрос для получения серфтификата и хранилище, которое будет использовано для авторизации https. Инициализируем приватный ключ и создадим хранилище, где PASSWORD — одинаковый пароль, который мы будем использовать во всех командах ниже и DOMAIN_NAME — просто имя вашего домена, без .ru, .org и т.д. Выполняем в терминале:
keytool -genkey -keysize 2048 -keyalg RSA -sigalg SHA1withRSA -alias webserver -keystore ks2 -keypass PASSWORD -storepass PASSWORD -dname "CN=DOMAIN_NAME.org, OU=Unknown, O=DOMAIN_NAME, L=Slovakia, ST=Unknown, C=SK"
Теперь мы можем создать файл-запрос, он же Certificate Request (CSR), результат появится в файле DOMAIN_NAME.csr:
keytool -certreq -alias webserver -file DOMAIN_NAME.csr -keystore ks2
Идем в раздел Certificates Wizard и там выбираем Web Server SSL/TSL Certificate. Нажимаем Skip. Открываем наш файл DOMAIN_NAME.csr и копируем его содержимое в буфер обмена. Возвращаемся на сайт StartSSL и в появившееся поле вставляем из буфера наш Certificate Request (CSR), который будет в формате Base64. Отправляем. StartSSL предлагает к основному домену добавить еще и поддомен. Можно указать стандартное www или то, что Вам хочется. В течении 15-180 минут будет создан сертификат
Четвертый шаг. Вы дождались письма от StartSSL о том что Ваш серфтикат готов. Идем к ним на сайт и получаем его в Tool Box — Retrieve Certificate, выбираем Ваш домен и появившийся текст в кодировке Base64 копируем в буфер обмена. Создаем на диске файл ssl.crt и вставляем в него наш сертификат. Теперь у нас есть все для финального шага. Качаем корневой сертификат StartSSL:
www.startssl.com/certs/ca.crt
www.startssl.com/certs/sub.class1.server.ca.crt
Импортируем эти сертификаты в наше хранилище:
keytool -import -alias startsslca -file ca.cer -keystore ks2 -trustcacerts
keytool -import -alias startsslca1 -file sub.class1.server.ca.crt -keystore ks2 -trustcacerts
Импортируем наш сертификат из файла ssl.crt:
keytool -import -alias webserver -file ssl.crt -keystore ks2
Пятый шаг. Последний. Пропишем в файле server.xml коннектор:
<Connector port="8443" maxThreads="200" scheme="https" secure="true" SSLEnabled="true" keystoreFile=“pathtokeystoreks2" keystorePass="PASSWORD" clientAuth="false" sslProtocol="TLS"/>
И установим редирект:
<Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
Готово.
P.S. Прошу прощения за допущенные мною орфографические ошибки, а так же за возможно сумбурный гайд. Автор самоучка и, возможно, некоторые вещи называет не своими именами. Всем спасибо за внимание. Надеюсь, публикация будет кому-то полезной.
P.S.S. Подразумевается, что все файлы сохраняются и создаются в одной папке, в этой же папке выполняются и команды в терминале.
Автор: Ezbar