Spec-Zone .ru
спецификации, руководства, описания, API
|
Чтобы включить соединениям SSL, Ваше распределение MySQL должно быть создано с поддержкой SSL, как описано в Разделе 6.3.9.2, "Конфигурируя MySQL для SSL". Кроме того, надлежащие связанные с SSL опции должны использоваться, чтобы определить соответствующий сертификат и файлы ключей. Для полного списка опций SSL см. Раздел 6.3.9.4, "Опции Команды SSL".
Чтобы запустить сервер MySQL так, чтобы это разрешило клиентам соединять SSL использования, используйте опции, которые идентифицируют сертификат и файлы ключей использование сервера, устанавливая безопасное соединение:
--ssl-ca
идентифицирует Центр сертификации (CA) сертификат.
--ssl-cert
идентифицирует сертификат открытого ключа сервера. Это может быть отправлено клиенту и
аутентифицироваться против сертификата CA, который это имеет.
--ssl-key
идентифицирует закрытый ключ сервера.
Например, запустите сервер как это:
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:
Чтобы установить безопасное соединение, используйте mysql_ssl_set()
C API-функция, чтобы установить соответствующие опции
сертификата перед вызовом mysql_real_connect()
.
См. Раздел
22.8.7.68,"mysql_ssl_set()
".
Чтобы определить, используется ли SSL, после, соединение устанавливается,
использовать mysql_get_ssl_cipher()
. Не -NULL
возвращаемое значение указывает на безопасное соединение и называет шифр SSL используемым для
шифрования. A NULL
возвращаемое значение указывает, что SSL не
используется. См. Раздел 22.8.7.33,"mysql_get_ssl_cipher()
".
Репликация использует API C, таким образом, безопасные соединения могут использоваться между основными и ведомыми серверами. См. Раздел 16.3.7, "Устанавливая Репликацию Используя SSL".