Файлы JKS#
В этом разделе описано, как проверить файл Java keystore (JKS), используемый для настройки TLS и HTTPS.
Система Java KeyStore (JKS) поставляется как часть вашей установки Java.
Закрытые ключи и сертификаты вашего сервера хранятся в файле keystore.
Система JKS поддерживает как файлы PKCS #12 .p12, так и устаревшие
файлы keystore .jks.
Сам файл keystore всегда защищен паролем. В одном файле keystore может быть более одного ключа, и к каждому обращаются по имени его alias.
Если вы получили файл keystore от сетевой команды вашего сайта, проверьте, что он содержит корректную информацию для вашего кластера Trino, как описано ниже.
Просмотр и проверка keystore#
Проверьте файл keystore, чтобы убедиться, что он содержит корректную
информацию для вашего сервера Trino. Используйте команду keytool, которая
устанавливается вместе с Java, чтобы получить информацию из вашего файла
keystore:
keytool -list -v -keystore yourKeystore.jks
Keystore всегда требует пароль. Если пароль не указан в командной строке
keytool, keytool запросит его.
Независимо от пароля keystore, отдельный ключ может иметь собственный пароль. Проще всего убедиться, что эти пароли совпадают. Если у ключа JKS внутри keystore другой пароль, вы получите два запроса.
В выводе команды keytool -list обратите внимание на следующее:
Keystore может содержать закрытый ключ (
Entry type: PrivateKeyEntry) or certificate (Entry type: trustedCertEntry) или оба варианта.Современные браузеры теперь ограничивают максимальный срок действия сертификата 398 днями. Найдите запись
Valid from ... untilи убедитесь, что интервал не превышает 398 дней.Современные браузеры и клиенты требуют поле SubjectAlternativeName (SAN). Убедитесь, что здесь указан DNS-адрес вашего сервера, например
DNS:cluster.example.com. Сертификаты без SAN не поддерживаются.Пример:
SubjectAlternativeName [
DNSName: cluster.example.com
]
Если в вашем keystore отображается корректная информация для кластера, переходите к настройке сервера Trino, как описано в Размещение файла сертификата и Настройка координатора.
Оставшаяся часть страницы описывает дополнительные шаги, которые могут понадобиться в отдельных случаях.
Дополнительно: добавить PEM в keystore#
На вашем сайте может использоваться стандарт JKS для всех серверов. Если
поставщик отправил вам сертификат PEM-кодировки для сервера Trino, его можно
импортировать в keystore с помощью команды, подобной следующей. Для других
вариантов смотрите справку по keytool.
keytool -trustcacerts -import -alias cluster -file localhost.pem -keystore localkeys.jks
Если указанный файл keystore существует, keytool запросит его пароль. Если
вы создаете новый keystore, keytool запросит новый пароль, затем попросит
подтвердить тот же пароль. keytool покажет содержимое добавляемого ключа
(аналогично формату keytool -list), а затем выведет запрос:
Trust this certificate? [no]:
Введите yes, чтобы добавить PEM-сертификат в keystore.
Имя alias — это произвольная строка, используемая как идентификатор
добавляемого сертификата. Keystore может содержать несколько ключей и
сертификатов, поэтому keytool использует alias для обращения к отдельным
записям.
Дополнительно: Java truststore#
Note
Помните, что может не потребоваться указывать локальный truststore, если напрямую используется подписанный PEM-сертификат, независимо от keystore. PEM-сертификаты могут содержать закрытый ключ сервера и цепочку сертификатов вплоть до признанного CA.
Файлы truststore содержат список
Certificate Authorities, которым доверяет Java для проверки
закрытых ключей серверов, а также список сертификатов доверенных TLS-серверов.
Стандартный truststore, поставляемый с Java, cacerts, является частью
установки Java и находится в стандартном расположении.
Keystore обычно использует расположение truststore системы по умолчанию, поэтому его обычно не требуется настраивать отдельно.
Однако есть случаи, когда необходимо использовать альтернативный truststore. Например, если ваш сайт использует систему JKS, сетевые администраторы могут добавлять локальные CA, специфичные для вашей организации, в стандартный список для проверки локально подписанных ключей.
Если сервер должен использовать пользовательский truststore, укажите его расположение в файле конфигурационных свойств сервера. Например:
http-server.https.truststore.path=/mnt/shared/certs/localcacerts
http-server.https.truststore.key=<truststore-password>
Если подключающиеся клиенты (например, браузеры или Trino CLI) также должны настраиваться отдельно, обратитесь за помощью к сетевым администраторам вашего сайта.