INTEGRITY Документация

Сертификаты SSL/TLS

Hyperdrive предоставляет дополнительные способы защиты подключения к базе данных. Hyperdrive поддерживает:

  1. Серверные сертификаты для режимов TLS (SSL), таких как verify-ca/VERIFY_CA и verify-full/VERIFY_IDENTITY для повышения безопасности. При настройке этого режима Hyperdrive проверяет, что сертификаты подписаны ожидаемым центром сертификации (CA), чтобы предотвратить атаки «человек посередине».
  2. Клиентские сертификаты чтобы 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 с серверными сертификатами:

  1. На панели управления Cloudflare перейдите к разделу Hyperdrive страницу.

    Перейдите в Hyperdrive ↗
  2. Выберите Создать конфигурацию.

  3. Выберите Серверные сертификаты.

  4. Укажите режим SSL Проверка CA или Полная проверка.

  5. Выберите 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 с серверными сертификатами:

  1. На панели управления Cloudflare перейдите к разделу Hyperdrive страницу.

    Перейдите в Hyperdrive ↗
  2. Выберите Создать конфигурацию.

  3. Выберите Клиентские сертификаты.

  4. Выберите пару SSL-сертификата клиента и закрытого ключа, которую Hyperdrive будет использовать при установке подключения к серверу базы данных.

При подключении Hyperdrive к базе данных он передаёт серверу базы данных клиентский сертификат, подписанный закрытым ключом. Это позволяет серверу базы данных убедиться, что у клиента, в данном случае Hyperdrive, есть и закрытый ключ, и клиентский сертификат. Используя клиентские сертификаты, вы добавляете для базы данных дополнительный уровень аутентификации и гарантируете, что подключаться к ней может только Hyperdrive.