Назад | Перейти на главную страницу

Безопасность подключения MySQL

У меня 2 сервера Windows 2003. Один из них работает с IIS с расширением Microsoft FastCGI и PHP. Другой сервер работает под управлением MySQL 5.1. Я хочу установить некоторые приложения PHP на сервере IIS и заставить их использовать базы данных на втором сервере.

Я знаю, что могу использовать другой тип шифрования и меры на более низких уровнях сетевого стека, но хотел узнать, что предлагает MySQL.

MySQL (стандартная версия с открытым исходным кодом) предлагает шифрование SSL.

Во-первых, вы хотите увидеть, включен ли он. Вы можете сделать это, запустив следующее из клиента mysql:

SHOW VARIABLES LIKE 'have_ssl';

Если значение «ДА», значит, вы знаете, что ваша версия скомпилирована. Если указано «ОТКЛЮЧЕНО», значит, он скомпилирован, но вам необходимо добавить информацию о сертификате, подробно описанную ниже. Если там написано что-то еще, ну, вам нужно получить с ним версию.

Чтобы включить его, вам необходимо изменить файл my.cnf так, чтобы он включал в раздел [mysqld] следующее:

ssl-ca=ca-cert.pem
ssl-cert=my_cert.pem
ssl-key=my_key.pem

Очевидно, вам нужно будет изменить значения на подходящие. Все сертификаты должны быть в стандартном формате PEM.

Я не особо разбираюсь в PHP-разработчике, но должен быть способ включить это в вызове подключения.

Mysql изначально поддерживает SSL, вот ссылка из документации. Сложность может заключаться в получении версии PHP с драйвером mysql, который поддерживает ssl. Я не уверен, но в коде, возможно, потребуется использовать mysqli* вместо mysql* или PDO.

Бинарные файлы MySQL (которые устанавливаются большинством пользователей Windows) поддерживают только yaSSL, который имеет некоторую сомнительную поддержку для Windows.

Если вы хотите запустить это с помощью SSL, вам может потребоваться либо найти работающую установку yaSSL для вашей версии Windows, либо запустить ее в Linux.