Проверка файлов JKS (Java keystore)#
Данный документ содержит инструкции по проверке файлов Java keystore (JKS), используемых для Шифрование клиентского трафика с помощью TLS.
Java KeyStore (JKS) это набор утилит, которые являются частью инсталляции Java. JSK позволяет создавать и управлять
файлами keystore, которые содержат сертификаты и публичные ключи. JKS поддерживает форматы PKCS #12 .p12
, а так
же файлы .jks
.
Файлы keystore всегда защищены паролем. Файл keystore может содержать один или несколько приватных ключей и сертификатов, каждый из которых имеет собственный псевдоним (alias).
Проверка keystore#
Убедитесь с помощью утилиты keytool
(является частью JDK), что полученный keystore файл содержит необходимые ключи:
keytool -list -v -keystore yourKeystore.jks
Вам потребуется ввести пароль keystore. Проанализируйте вывод данной команды:
Файл keystore может содержать приватный ключ (
Entry type: PrivateKeyEntry
), сертификат (Entry type: trustedCertEntry
) или оба.Большинство современных браузеров устанавливают максимальный срок валидности сертификата в 398 дня. Обратите внимание на параметры
Not Before
иNot After
в секцииValidity
. Если срок действия сертификата превышает предельное значение, браузеры могут выдать ошибку при получении такого сертификата.Многие современные браузеры и клиентские приложения требуют наличия поля Subject Alternative Name (SAN). Убедитесь, что это поле содержит DNS имя вашего сервера (например,
DNS:clustercoord.example.com
). Браузеры и клиентские приложения могут выдать ошибку при получении сертификата без SAN.Например:
SubjectAlternativeName [ DNSName: cluster.example.com ]
После того, как вы убедились в корректности сертификата, установите его на координатор CedrusData согласно документации Установка сертификата и Конфигурация координатора.
Следующие секции описывают дополнительные шаги, которые могут потребоваться в некоторых случаях.
Импорт PEM в keystore#
Иногда вам может потребоваться записать в файл keystore сертификат в формате PEM. Это можно сделать с помощью следующей
команды (см. дополнительные опции в документации keytool
):
keytool -trustcacerts -import -alias cluster -file localhost.pem -keystore localkeys.jks
Если указанный keystore файл существует, утилита потребует пароль keystore. Если keystore файл не существует, утилита потребует задать пароль для вновь создаваемого файла. После ввода пароля утилита покажет вам содержимое добавляемого ключа, и далее задаст вопрос:
Trust this certificate? [no]:
Введите yes
, чтобы добавить сертификат PEM в keystore.
Опция alias
задает произвольный псевдоним импортируемому приватному ключу или сертификату. Keystore может содержать
множество приватных ключей и сертификатов. Псевдонимы используются, что бы обр
Проверка сертификтов в truststore#
Файлы truststore содержат список доверенных центров сертификации, которые могут быть использованы Java
для проверки валидности приватных ключей, а так же список доверенных сертификатов. Поставка Java обычно включает файл
cacerts
, который является truststore по умолчанию.
В некоторых случаях вам может потребоваться альтернативный truststore. Например, если сертификат был выдан IT-отделом
вашей компании, он может полагаться на локальный центр сертификации вашей организации, который не включен в cacerts
.
В таком случае вам может потребоваться указать в конфигурации координатора config.properties
путь к альтернативному файлу truststore. Файлы truststore зашифрованы паролем, который так же необходимо указать в
конфигурации. Например:
http-server.https.truststore.path=/mnt/shared/certs/localcacerts
http-server.https.truststore.key=<truststore-password>
При использовании нестандартных truststore, клиентским приложениям может потребоваться дополнительная конфигурация.
Так, для конфигурации JDBC драйвера Trino, вам может потребоваться использовать параметры
SSLTrustStorePath
, SSLTrustStorePassword
, SSLTrustStoreType
или SSLUseSystemTrustStore
. Для отключения
проверки сертификатов используйте параметр SSLVerification=NONE
(только для тестирования).
Для конфигурации Trino CLI используйте опции --truststore-path
, --truststore-password
,
--truststore-type
и --use-system-truststore
. Для отключения проверки сертификатов используйте параметр
--insecure
(только для тестирования)
Для конфигурации других приложений обратитесь к администраторам вашей организации за дополнительными инструкциями.