← Hyperdrive (Postgres & MySQL) / hyperdrive / configuration
Сертификаты SSL/TLS
Hyperdrive предоставляет дополнительные способы защиты подключения к базе данных. Hyperdrive поддерживает:
- Серверные сертификаты для режимов TLS (SSL), таких как
verify-ca/VERIFY_CAиverify-full/VERIFY_IDENTITYдля повышения безопасности. При настройке этого режима Hyperdrive проверяет, что сертификаты подписаны ожидаемым центром сертификации (CA), чтобы предотвратить атаки «человек посередине». - Клиентские сертификаты чтобы Hyperdrive мог аутентифицироваться в базе данных с помощью учетных данных, отличных от имени пользователя и пароля. Для корректной работы клиентских сертификатов база данных должна быть настроена на проверку клиентских сертификатов, которые предоставляет клиент, например Hyperdrive, для получения доступа к базе данных.
Hyperdrive можно настроить на использование только серверных сертификатов, только клиентских сертификатов или обоих сразу, в зависимости от требований безопасности и конфигурации базы данных.
Серверные сертификаты (режимы TLS/SSL)
Hyperdrive поддерживает распространенные режимы шифрования TLS/SSL для подключения к базе данных. Названия режимов отличаются для PostgreSQL и MySQL:
| PostgreSQL | MySQL | Описание |
|---|---|---|
require (по умолчанию) |
REQUIRED (по умолчанию) |
Для шифрованного соединения требуется TLS, а сертификаты сервера проверяются на основе WebPKI. |
verify-ca |
VERIFY_CA |
Hyperdrive проверит надежность сервера базы данных, убедившись, что сертификаты сервера подписаны ожидаемым корневым или промежуточным удостоверяющим центром. |
verify-full |
VERIFY_IDENTITY |
Помимо verify-ca/VERIFY_CA проверках Hyperdrive требует, чтобы имя хоста базы данных совпадало с Subject Alternative Name (SAN) или Common Name (CN) в сертификате. |
По умолчанию все конфигурации Hyperdrive шифруются с помощью SSL/TLS (require/REQUIRED). Для этого ваша база данных должна быть настроена на прием зашифрованных подключений (с SSL/TLS).
Hyperdrive можно настроить на использование verify-ca/VERIFY_CA и verify-full/VERIFY_IDENTITY для более строгой настройки безопасности: эти режимы обеспечивают дополнительные проверки сертификатов сервера. Это помогает защититься от атак «человек посередине».
Чтобы настроить в Hyperdrive проверку сертификатов сервера, необходимо предоставить Hyperdrive сертификат корневого центра сертификации (CA) или промежуточный сертификат, которым был подписан сертификат вашей базы данных.
Шаг 1. Загрузите сертификат корневого центра сертификации (CA)
С помощью Wrangler можно загрузить сертификат корневого центра сертификации (CA):
# requires Wrangler 4.9.0 or greater
npx wrangler cert upload certificate-authority --ca-cert \<ROUTE_TO_CA_PEM_FILE\>.pem --name \<CUSTOM_NAME_FOR_CA_CERT\>
---
Uploading CA Certificate tmp-cert...
Success! Uploaded CA Certificate <CUSTOM_NAME_FOR_CA_CERT>
ID: <YOUR_ID_FOR_THE_CA_CERTIFICATE>
...Шаг 2. Создайте конфигурацию Hyperdrive с использованием сертификата CA и режима SSL
После создания сертификата CA вы можете создать конфигурацию Hyperdrive с новыми сертификатами через панель управления или Wrangler. Также необходимо указать используемый режим SSL (verify-ca/verify-full для PostgreSQL или VERIFY_CA/VERIFY_IDENTITY для MySQL).
С помощью Wrangler введите в терминале следующую команду, чтобы создать конфигурацию Hyperdrive с сертификатом CA и режимом SSL:
# PostgreSQL with verify-full
npx wrangler hyperdrive create <NAME_OF_HYPERDRIVE_CONFIG> --connection-string="postgres://user:password@HOSTNAME_OR_IP_ADDRESS:PORT/database_name" --ca-certificate-id <YOUR_CA_CERT_ID> --sslmode verify-full
# MySQL with VERIFY_IDENTITY
npx wrangler hyperdrive create <NAME_OF_HYPERDRIVE_CONFIG> --connection-string="mysql://user:password@HOSTNAME_OR_IP_ADDRESS:PORT/database_name" --ca-certificate-id <YOUR_CA_CERT_ID> --sslmode VERIFY_IDENTITYВ панели управления Cloudflare выполните следующие шаги, чтобы создать конфигурацию Hyperdrive с серверными сертификатами:
-
На панели управления Cloudflare перейдите к разделу Hyperdrive страницу.
Перейдите в Hyperdrive ↗ -
Выберите Создать конфигурацию.
-
Выберите Серверные сертификаты.
-
Укажите режим SSL Проверка CA или Полная проверка.
-
Выберите SSL-сертификат центра сертификации (CA) вашей базы данных, который вы ранее загрузили с помощью Wrangler.
При создании конфигурации Hyperdrive система попытается подключиться к базе данных с указанными учётными данными. Если команда выполнится успешно, значит конфигурация Hyperdrive настроена верно и проверяет сертификаты, предоставляемые сервером базы данных.
Клиентские сертификаты
Базу данных можно настроить на проверку сертификата, предоставленного клиентом (в данном случае Hyperdrive). Это служит дополнительным фактором аутентификации клиентов (в дополнение к имени пользователя и паролю). См. PostgreSQL ↗ или MySQL ↗ документацию, чтобы узнать больше.
Чтобы сервер базы данных мог проверять клиентские сертификаты, Hyperdrive необходимо настроить на предоставление файла сертификата (client-cert.pem) и закрытым ключом, с помощью которого был сгенерирован сертификат (private-key.pem).
Шаг 1. Загрузите клиентские сертификаты (сертификаты mTLS)
Загрузите клиентские сертификаты для использования в Hyperdrive с помощью Wrangler:
# requires Wrangler 4.9.0 or greater
npx wrangler cert upload mtls-certificate --cert client-cert.pem --key client-key.pem --name <CUSTOM_NAME_FOR_CLIENT_CERTIFICATE>
---
Uploading client certificate <CUSTOM_NAME_FOR_CLIENT_CERTIFICATE>...
Success! Uploaded client certificate <CUSTOM_NAME_FOR_CLIENT_CERTIFICATE>
ID: <YOUR_ID_FOR_THE_CLIENT_CERTIFICATE_PAIR>
...Шаг 2. Создайте конфигурацию Hyperdrive
Теперь можно создать конфигурацию Hyperdrive с использованием только что созданного набора клиентских сертификатов через панель управления или Wrangler.
С помощью Wrangler введите в терминале следующую команду, чтобы создать конфигурацию Hyperdrive с парой клиентских сертификатов:
# PostgreSQL
npx wrangler hyperdrive create <NAME_OF_HYPERDRIVE_CONFIG> --connection-string="postgres://user:password@HOSTNAME_OR_IP_ADDRESS:PORT/database_name" --mtls-certificate-id <YOUR_CLIENT_CERT_PAIR_ID>
# MySQL
npx wrangler hyperdrive create <NAME_OF_HYPERDRIVE_CONFIG> --connection-string="mysql://user:password@HOSTNAME_OR_IP_ADDRESS:PORT/database_name" --mtls-certificate-id <YOUR_CLIENT_CERT_PAIR_ID>В панели управления Cloudflare выполните следующие шаги, чтобы создать конфигурацию Hyperdrive с серверными сертификатами:
-
На панели управления Cloudflare перейдите к разделу Hyperdrive страницу.
Перейдите в Hyperdrive ↗ -
Выберите Создать конфигурацию.
-
Выберите Клиентские сертификаты.
-
Выберите пару SSL-сертификата клиента и закрытого ключа, которую Hyperdrive будет использовать при установке подключения к серверу базы данных.
При подключении Hyperdrive к базе данных он передаёт серверу базы данных клиентский сертификат, подписанный закрытым ключом. Это позволяет серверу базы данных убедиться, что у клиента, в данном случае Hyperdrive, есть и закрытый ключ, и клиентский сертификат. Используя клиентские сертификаты, вы добавляете для базы данных дополнительный уровень аутентификации и гарантируете, что подключаться к ней может только Hyperdrive.