В этом руководстве вы узнаете, как установить SSL-сертификат на GlassFish (теперь Eclipse GlassFish) с помощью утилиты Java keytool и командной строки asadmin.
Создание CSR-кода для GlassFish
Первый шаг при заказе SSL-сертификата — создать CSR (запрос на подпись сертификата) и отправить его в вашу центру сертификации (ваш SSL-провайдер). CSR представляет собой блок текста, содержащий сведения о вашем сайте и организации. CA использует его для проверки вашей личности, поэтому если CSR содержит неверную или устаревшую информацию, CA не подпишет ваш сертификат.
В GlassFish CSR создается с помощью keytool из хранилища ключей Java (keystore), и это же хранилище содержит закрытый ключ, который вы будете повторно использовать при установке. У вас есть два варианта:
- Используйте наш генератор CSR для автоматического создания CSR.
- Следуйте нашему пошаговому руководству по созданию CSR в GlassFish.
Вы можете открыть файл CSR с помощью любого текстового редактора (например, Notepad). Перед отправкой его в CA мы рекомендуем провести окончательную проверку на наличие опечаток или ошибок. Используйте наш инструмент декодирования CSR для его проверки.
В зависимости от типа проверки вашего сертификата, выпуск занимает от нескольких минут до пары рабочих дней. Как только SSL-файлы окажутся в вашем почтовом ящике, переходите к установке ниже.
Установка SSL-сертификата на GlassFish
Ключевая идея установки на GlassFish заключается в том, что ваш подписанный сертификат должен быть привязан к закрытому ключу, созданному вместе с вашим CSR. Это делается путем импорта цепочки сертификатов и подписанного сертификата в хранилище ключей, которое уже содержит этот ключ, то же самое, которое вы использовали для создания CSR.
Шаг 1: Извлеките файлы сертификата
Ваш CA отправляет сертификат по электронной почте на указанный вами адрес, обычно в виде ZIP-архива. Извлеките его. Файлы поступают в одном из двух форматов:
- PEM: отдельные файлы, как правило, .crt (сертификат вашего сервера) и .ca-bundle (корневой и промежуточные сертификаты).
- PKCS#7: один файл .p7b (или .cer), который уже объединяет ваш сертификат вместе с полной цепочкой.
Шаг 2: Загрузите SSL-файлы на сервер GlassFish
Загрузите извлеченные файлы на сервер, в тот же каталог, где находится хранилище ключей, из которого вы сгенерировали CSR (ниже оно обозначается как mykeystore.jks). Формат PEM требует двух команд импорта; для PKCS#7 нужна только одна. Выберите формат, соответствующий вашим файлам.
Формат PEM. Сначала импортируйте пакет CA, чтобы keytool смог построить полную цепочку доверия, а затем импортируйте сертификат вашего сервера. Импортируйте пакет CA командой:
keytool -import -trustcacerts -alias ca -file file.ca-bundle -keystore mykeystore.jks
Используйте любое имя для псевдонима этой записи цепочки (здесь — ca), при условии, что оно отличается от псевдонима вашего закрытого ключа. Далее импортируйте ваш подписанный сертификат сервера в существующий псевдоним закрытого ключа, тот же псевдоним, который вы использовали при создании CSR:
keytool -import -trustcacerts -alias myalias -file file.crt -keystore mykeystore.jks
Здесь myalias должен быть псевдонимом, который уже содержит ваш закрытый ключ. Поскольку этот псевдоним имеет ключ, keytool рассматривает данный импорт как ответ на сертификат и связывает подписанный сертификат с ключом. Именно этот шаг обеспечивает работу HTTPS; см. предупреждение ниже.
Формат PKCS#7. Файл .p7b уже содержит полную цепочку, поэтому одна команда импортирует все сразу, снова в псевдоним закрытого ключа:
keytool -import -trustcacerts -alias myalias -file file.p7b -keystore mykeystore.jks
keytool запрашивает пароль вашего хранилища ключей. Как и выше, myalias должен совпадать с вашим существующим псевдонимом закрытого ключа. Если вы не помните псевдоним, выведите список содержимого хранилища ключей:
keytool -list -v -keystore mykeystore.jks
Найдите запись, тип которой PrivateKeyEntry; именно в этот псевдоним нужно импортировать ваш подписанный сертификат.
⚠️ Критическая ошибка: не импортируйте подписанный сертификат под совершенно новым псевдонимом. Если у псевдонима нет существующего закрытого ключа, keytool сохранит сертификат как отдельную доверенную запись без привязанного ключа, и TLS не будет работать. Всегда импортируйте ответ в псевдоним, который уже содержит ключ (псевдоним GlassFish по умолчанию: s1as).
Шаг 3: Импорт в хранилище ключей GlassFish по умолчанию
После установки сертификата импортируйте ваше хранилище ключей в стандартное хранилище ключей GlassFish. При установке по умолчанию оно находится в каталоге конфигурации домена, например glassfish/domains/domain1/config/keystore.jks (в более старых сборках GlassFish 4 этот путь вложен в корневую папку glassfish4/). Соответствующее хранилище доверенных сертификатов — cacerts.jks в том же каталоге.
Примечание: по умолчанию GlassFish создает домен domain1. Если вы добавили собственный домен, используйте его каталог вместо этого.
Импортируйте ваше хранилище ключей в хранилище ключей GlassFish командой:
keytool -importkeystore -srckeystore mykeystore.jks -destkeystore keystore.jks
Шаг 4: Согласование паролей хранилища ключей
Пароль хранилища ключей GlassFish должен совпадать с мастер-паролем GlassFish для данного домена. Если мастер-пароль, пароль хранилища ключей и пароль закрытого ключа не совпадают, GlassFish не сможет разблокировать ключ, и ваш SSL-сертификат не будет работать. (В новом домене пароль хранилища ключей по умолчанию — changeit.)
Шаг 5: Обновление конфигурации GlassFish
После успешного импорта настройте HTTPS-слушатель GlassFish так, чтобы он использовал ваш сертификат, а не стандартный самоподписанный. Это можно сделать через браузер с помощью консоли администрирования GlassFish или вручную, отредактировав файл domain.xml.
Вариант A: консоль администрирования. Сначала включите безопасное администрирование для домена:
asadmin enable-secure-admin
Перезапустите домен GlassFish (по умолчанию — domain1), чтобы изменения вступили в силу:
asadmin restart-domain domain1
Теперь откройте консоль по адресу https://yoursite.com:4848. Пропустите предупреждение о самоподписанном сертификате и продолжайте. Перейдите в Configurations > server-config > HTTP Service > HTTP Listeners > http-listener-2.
Откройте вкладку SSL и в поле Certificate Nickname введите псевдоним вашего сертификата (тот же, что и псевдоним хранилища ключей). Затем переключитесь на вкладку General и измените порт слушателя на 443. По умолчанию GlassFish использует для HTTPS порт 8181. Сохраните изменения.
Иногда не все ссылки на конфигурацию в консоли обновляются на новый псевдоним. Если это произошло, завершите изменение вручную в domain.xml (вариант B).
Вариант B: редактирование domain.xml. Файл domain.xml находится в том же каталоге конфигурации, например glassfish/domains/domain1/config/domain.xml. Для безопасного редактирования сначала остановите домен:
asadmin stop-domain domain1
Откройте domain.xml в текстовом редакторе и с помощью функции поиска (Ctrl+F) найдите s1as — псевдоним сертификата GlassFish по умолчанию. Замените все вхождения s1as на псевдоним вашего сертификата (в данном руководстве — myalias). Обновление всех вхождений также обеспечивает защиту консоли администрирования вашим сертификатом.
Сохраните domain.xml и снова запустите домен:
asadmin start-domain domain1
Поздравляем, ваш SSL-сертификат теперь установлен на сервере GlassFish.
Проверка установки SSL
После установки сертификата запустите нашу проверку SSL, чтобы проверить состояние вашей установки. Мгновенное сканирование выявляет любые ошибки или уязвимости (например, отсутствующий промежуточный сертификат или недоверенную цепочку), которые могут повлиять на то, как браузеры обрабатывают ваш сертификат.
Где купить SSL-сертификат для GlassFish?
Лучшее место для покупки SSL-сертификата для GlassFish — SSL Dragon. Мы предлагаем одни из самых низких цен на рынке и регулярные скидки на весь ассортимент наших SSL-продуктов, а также сотрудничаем с лучшими SSL-брендами в отрасли, обеспечивая надежное шифрование и специализированную поддержку. Все наши SSL-сертификаты совместимы с GlassFish.
Чтобы помочь вам с выбором, мы создали два бесплатных инструмента. Нашему SSL Wizard требуется всего несколько секунд, чтобы найти лучшее предложение SSL для вашего проекта и бюджета.
Часто задаваемые вопросы
В комплекте домена GlassFish есть два JKS-файла в каталоге конфигурации: keystore.jks, содержащий закрытые ключи, и cacerts.jks — хранилище доверенных сертификатов CA. Оба по умолчанию находятся в domains/domain1/config/. Псевдоним сертификата по умолчанию, используемый защищенным HTTP-слушателем, — s1as, а пароль хранилища ключей по умолчанию — changeit.
Обычная причина — импорт подписанного сертификата под новым псевдонимом вместо псевдонима, который уже содержит ваш закрытый ключ. В этом случае keytool сохраняет его как доверенную запись сертификата без ключа, поэтому GlassFish не может завершить рукопожатие TLS. Повторно импортируйте подписанный ответ в существующий псевдоним закрытого ключа (по умолчанию s1as). Вторая по частоте причина — несовпадение паролей; пароли хранилища ключей, ключа и мастер-пароль домена должны совпадать.
Сначала импортируйте пакет CA (корневой и промежуточные сертификаты) как доверенную запись. Это позволяет keytool построить полную цепочку, когда вы затем импортируете подписанный сертификат сервера в псевдоним закрытого ключа. При использовании файла PKCS#7 (.p7b) цепочка уже объединена, поэтому один импорт обрабатывает все.
Выполните команду asadmin restart-domain domain1, чтобы применить изменения одним шагом, или остановите и запустите домен отдельно с помощью asadmin stop-domain domain1, а затем asadmin start-domain domain1. Перезапуск требуется после включения безопасного администрирования и после редактирования domain.xml.
По умолчанию защищенный слушатель (http-listener-2) использует порт 8181, а консоль администрирования использует порт 4848. Чтобы обслуживать HTTPS на стандартном порту, измените порт слушателя на 443 в консоли администрирования или в domain.xml.
Сэкономьте 10% на SSL-сертификатах при заказе сегодня!
Быстрая выдача, надежное шифрование, 99,99% доверия к браузеру, специализированная поддержка и 25-дневная гарантия возврата денег. Код купона: SAVE10


