Использование TLS¶
Tarantool DB (RESP) поддерживает шифрование трафика с использованием протокола TLS. По умолчанию используется протокол mTLS, в котором проверяется не только серверный, но и клиентский сертификат.
В этом разделе приведены примеры конфигурации TLS, а также приведен список поддерживаемых опций конфигурации, связанных с шифрованием TLS.
Чтобы включить TLS, используйте опцию конфигурации tls_enable.
Содержание:
Примеры конфигурации¶
TLS¶
В примере сертификаты хранятся в директории certs
.
Простая конфигурация TLS при этом может выглядеть так:
{
port = 6388,
tls_enable=true,
tls_auth_clients=false,
tls_cert_file="certs/server.crt",
tls_key_file="certs/server.key",
tls_ca_cert_file="certs/ca.crt"
}
Здесь:
port
– номер порта для подключения;tls_enable
– включение TLS;tls_auth_clients
– отключение проверки сертификатов клиента через протокол mTLS;tls_cert_file
– путь к сертификату в формате PEM;tls_key_file
– путь к сертификату PKCS #8 в формате PEM;tls_ca_cert_file
– путь к корневому сертификату в формате PEM.
Полное описание опций конфигурации TLS приведено в разделе Справочник по конфигурации TLS.
mTLS¶
Конфигурация mTLS для самоподписанного сертификата может выглядеть так:
{
port = 6388,
tls_enable=true,
tls_auth_clients=true,
tls_trust_ca=true,
tls_cert_file="certs/server.crt",
tls_key_file="certs/server.key",
tls_ca_cert_file="certs/ca.crt"
}
Здесь:
port
– номер порта для подключения;tls_enable
– включение TLS;tls_auth_clients
– включение проверки сертификатов клиента через протокол mTLS;tls_trust_ca
– добавление указанного корневого сертификата в список доверенных сертификатов;tls_cert_file
– путь к сертификату в формате PEM;tls_key_file
– путь к сертификату PKCS #8 в формате PEM;tls_ca_cert_file
– путь к корневому сертификату в формате PEM.
Полное описание опций конфигурации TLS приведено в разделе Справочник по конфигурации TLS.
ГОСТ TLS¶
Для использования TLS с криптографическими алгоритмами ГОСТ требуется установленный движок gost-engine
, который глобально настроен в качестве движка по умолчанию.
Конфигурация TLS с шифрами ГОСТ при этом может выглядеть следующим образом:
{
port = 6388,
tls_enable=true,
tls_auth_clients=true,
tls_trust_ca=true,
tls_cert_file="certs/server.crt",
tls_key_file="certs/server.key",
tls_ca_cert_file="certs/ca.crt",
tls_min_version=2,
tls_max_version=2,
tls_ciphers_prior_v13="GOST2012-MAGMA-MAGMAOMAC:GOST2012-KUZNYECHIK-KUZNYECHIKOMAC:LEGACY-GOST2012-GOST8912-GOST8912:IANA-GOST2012-GOST8912-GOST8912:GOST2001-GOST89-GOST89"
}
Здесь:
port
– номер порта для подключения;tls_enable
– включение TLS;tls_auth_clients
– включение проверки сертификатов клиента через протокол mTLS;tls_trust_ca
– добавление указанного корневого сертификата в список доверенных сертификатов;tls_cert_file
– путь к сертификату в формате PEM;tls_key_file
– путь к сертификату PKCS #8 в формате PEM;tls_ca_cert_file
– путь к корневому сертификату в формате PEM;tls_min_version
– минимальная допустимая версия TLS, разрешенная для подключения;tls_max_version
– максимальная допустимая версия TLS, разрешенная для подключения;tls_ciphers_prior_v13
– список шифров, разделенных двоеточиями, которые используются для всех соединений по TLS-протоколу ниже версии 1.3.
Полное описание опций конфигурации TLS приведено в разделе Справочник по конфигурации TLS.
Справочник по конфигурации TLS¶
tls_enable¶
Включить TLS-шифрование. Если эта опция отключена, остальные опции конфигурации не будут иметь никакого эффекта.
Пример конфигурации: TLS.
Тип: boolean
Значение по умолчанию: false
tls_auth_clients¶
Включить проверку сертификатов клиента через протокол mTLS.
Пример конфигурации: mTLS.
Тип: boolean
Значение по умолчанию: true
tls_ca_cert_file¶
Путь к корневому сертификату в формате PEM.
Если для опции tls_auth_clients задано значение true
,
значение опции tls_ca_cert_file
также используется для проверки сертификатов клиентов.
Тип: string
tls_ciphers_prior_v13¶
Список шифров, разделенных двоеточиями, которые используются для всех соединений по TLS-протоколу ниже версии 1.3. По умолчанию используются рекомендации Mozilla по настройке TLS на стороне сервера со средним (intermediate) уровнем совместимости. Такой уровень предполагает следующий список шифров:
ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:\
ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:\
DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
Тип: string
tls_ciphers_v13¶
Список наборов шифров (cipher suites), разделенных двоеточиями, которые используются для всех соединений по TLS-протоколу версии 1.3.
Тип: string
Значение по умолчанию: TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256
tls_key_file¶
Путь к сертификату PKCS #8 в формате PEM.
Примечание
В целях безопасности права доступа к файлу ключа не должны превышать значения 600
.
Если права доступа превысят это пороговое значение, Tarantool DB (RESP) намеренно прекратит свою работу.
Тип: string
tls_max_version¶
Максимальная допустимая версия TLS, разрешенная для подключения. Возможные значения опции соответствуют версиям TLS:
0
– версия 1.0;1
– версия 1.1;2
– версия 1.2;3
– версия 1.3.
Тип: number
Значение по умолчанию: 3
tls_min_version¶
Минимальная допустимая версия TLS, разрешенная для подключения. Возможные значения опции соответствуют версиям TLS:
0
– версия 1.0;1
– версия 1.1;2
– версия 1.2;3
– версия 1.3.
Тип: number
Значение по умолчанию: 2
tls_trust_ca¶
Добавить предоставленный корневой сертификат в список доверенных сертификатов. Опция может быть полезна, если вы используете самоподписанный корневой сертификат или промежуточный корневой сертификат, подписанный центром, который вы не хотите добавлять в список доверенных сертификатов вашей системы.
Тип: boolean
Значение по умолчанию: false