Spec-Zone .ru
спецификации, руководства, описания, API

6.3.9.3. Используя Соединения SSL

Чтобы включить соединениям SSL, Ваше распределение MySQL должно быть создано с поддержкой SSL, как описано в Разделе 6.3.9.2, "Конфигурируя MySQL для SSL". Кроме того, надлежащие связанные с SSL опции должны использоваться, чтобы определить соответствующий сертификат и файлы ключей. Для полного списка опций SSL см. Раздел 6.3.9.4, "Опции Команды SSL".

Чтобы запустить сервер MySQL так, чтобы это разрешило клиентам соединять SSL использования, используйте опции, которые идентифицируют сертификат и файлы ключей использование сервера, устанавливая безопасное соединение:

Например, запустите сервер как это:

shell> mysqld --ssl-ca=ca-cert.pem
        \         --ssl-cert=server-cert.pem
        \         --ssl-key=server-key.pem

Каждая опция называет файл в формате PEM. Для получения инструкций по генерированию необходимого сертификата SSL и файлов ключей, см. Раздел 6.3.9.5, "Устанавливая Сертификаты SSL и Ключи для MySQL". Если у Вас есть исходное распределение MySQL, можно также протестировать свою установку, используя демонстрационный сертификат и файлы ключей в mysql-test/std_data каталог распределения.

Подобные опции используются на стороне клиента, хотя в этом случае, --ssl-cert и --ssl-key идентифицируйте клиентский открытый ключ и закрытый ключ. Отметьте, что сертификат Центра сертификации, если определено, должен быть тем же самым как использующийся сервером.

Чтобы установить безопасное соединение с сервером MySQL с поддержкой SSL, опции, которые должен определить клиент, зависят от требований SSL учетной записи MySQL, используемой клиентом. (См. обсуждение REQUIRE пункт в Разделе 13.7.1.4,"GRANT Синтаксис".)

Предположите, что Вы хотите соединить использование учетной записи, которая не имеет никаких специальных требований SSL или создавалась, используя a GRANT оператор, который включает REQUIRE SSL опция. Как рекомендуемый набор опций SSL, запустите сервер с, по крайней мере, --ssl-cert и --ssl-key, и вызовите клиент с --ssl-ca. Клиент может соединиться надежно как это:

shell> mysql --ssl-ca=ca-cert.pem

Чтобы потребовать что клиентский сертификат также быть определенными, создайте учетную запись, используя REQUIRE X509 опция. Затем клиент должен также определить надлежащий клиентский ключ и файлы сертификата, или сервер отклонит соединение:

shell> mysql --ssl-ca=ca-cert.pem
        \       --ssl-cert=client-cert.pem \       --ssl-key=client-key.pem

Клиент может определить, использует ли текущее соединение с сервером SSL, проверяя значение Ssl_cipher переменная состояния. Значение Ssl_cipher непусто, если SSL используется, и пустой иначе. Например:

mysql> SHOW STATUS LIKE 'Ssl_cipher';+---------------+--------------------+| Variable_name | Value              |+---------------+--------------------+| Ssl_cipher    | DHE-RSA-AES256-SHA |+---------------+--------------------+

Для mysql клиента альтернатива должна использовать STATUS или \s команда и проверка SSL строка:

mysql> \s...SSL:                    Not in use...

Или:

mysql> \s...SSL:                    Cipher in use is DHE-RSA-AES256-SHA...

API C позволяет прикладным программам использовать SSL:

Репликация использует API C, таким образом, безопасные соединения могут использоваться между основными и ведомыми серверами. См. Раздел 16.3.7, "Устанавливая Репликацию Используя SSL".