Во многих случаях может потребоваться зашифровать трафик между клиентом и сервером. Для этого можно указать, что сервер должен использовать протокол HTTPS вместо HTTP.
Чтобы включить HTTPS, в секции searchd конфигурации должны быть установлены как минимум следующие две директивы, и должен быть настроен хотя бы один слушатель на https:
Кроме того, можно указать сертификат центра сертификации (также известный как корневой сертификат) в:
Пример с CA:
ssl_ca = ca-cert.pem
ssl_cert = server-cert.pem
ssl_key = server-key.pem
Пример без CA:
ssl_cert = server-cert.pem
ssl_key = server-key.pem
Эти шаги помогут вам сгенерировать SSL-сертификаты с помощью инструмента 'openssl'.
Сервер может использовать Центр сертификации для проверки подписи сертификатов, но также может работать только с приватным ключом и сертификатом (без сертификата CA).
openssl genrsa 2048 > ca-key.pem
Чтобы сгенерировать самоподписанный CA (корневой) сертификат из приватного ключа (обязательно заполните хотя бы "Common Name"), используйте следующую команду:
openssl req -new -x509 -nodes -days 365 -key ca-key.pem -out ca-cert.pem
Сервер использует сертификат сервера для защиты связи с клиентом. Чтобы сгенерировать запрос на сертификат и приватный ключ сервера (убедитесь, что вы заполнили хотя бы "Common Name" и что он отличается от общего имени корневого сертификата), выполните следующие команды:
openssl req -newkey rsa:2048 -days 365 -nodes -keyout server-key.pem -out server-req.pem
openssl rsa -in server-key.pem -out server-key.pem
openssl x509 -req -in server-req.pem -days 365 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem
После завершения вы можете проверить, что файлы ключа и сертификата были сгенерированы правильно, выполнив:
openssl verify -CAfile ca-cert.pem server-cert.pem
При наличии корректной SSL-конфигурации доступны следующие возможности:
mysql в Linux по умолчанию пытается использовать SSL, поэтому типичное подключение к Manticore с корректной SSL-конфигурацией, скорее всего, будет защищённым. Вы можете проверить это, выполнив SQL-команду 'status' после подключения.Если ваша SSL-конфигурация по какой-либо причине недействительна (что демон определяет по факту невозможности установить защищённое соединение), помимо неверной конфигурации могут быть и другие причины, например, невозможность загрузить соответствующую SSL-библиотеку вообще. В этом случае следующие вещи не будут работать или будут работать в незащищённом режиме:
https. HTTPS-соединения будут разорваны.mysql через MySQL-клиент не будет поддерживать защиту SSL. Если клиент требует SSL, соединение завершится ошибкой. Если SSL не требуется, будет использоваться обычное MySQL-соединение или сжатое соединение.