Как установить зашифрованное соединение PDO (SSL) в PHP с MySQL > 8.0.10MySql

Форум по Mysql
Ответить
Anonymous
 Как установить зашифрованное соединение PDO (SSL) в PHP с MySQL > 8.0.10

Сообщение Anonymous »

У меня возникли проблемы с подключением к базе данных Mysql 8.0.35, для которой требуется шифрование PHP/PDO. Мы тестируем настройку параметров MySQL, требующих безопасных соединений, и я работаю над тем, чтобы выяснить, что нам нужно изменить в нашем коде или конфигурациях на стороне клиента. База данных удалена от виртуальной машины, на которой выполняется код.
Вот пример тестируемого кода:

Код: Выделить всё

    $dbh = new PDO('mysql:host=remote.host;dbname=db;sslmode=require',
'user', 'pw', [PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => False]);
$res = $dbh->query('select * from test_table');
Я ожидал, что использование «sslmode=require» в строке подключения приведет к использованию шифрования, но попытка подключения постоянно терпит неудачу с сообщением об ошибке, указывающим, что соединение необходимо для быть зашифрованным — это означает, что соединение, которое PHP PDO пытается построить, не зашифровано.
Я видел на различных форумах более старые примеры, демонстрирующие явное наименование характеристик SSL, таких как CA или открытый ключ, — но я также см. примечания в документации MySQL, в которых указано, что более последняя версия MySQL (я думаю, позже 8.0.10, но определенно до 8.0.35, которую мы используем) - поэтому я не считаю, что мне нужно предоставлять более подробную информацию о шифровании, и у меня нет подробностей о сертификаты или ключи сервера MySQL.
Я пробовал несколько вариантов строки подключения: «sslMode=require», «sslmode=REQUIRED» и другие попытки, следуя всем моделям, которые я мог найти. в документации и статьях MySQL и PHP - никакой радости.
На той же виртуальной машине код PHP не работает, я могу успешно установить соединение через mysql cli, просто добавив опцию --ssl к его вызову. И у MySQL Workbench нет проблем с подключением к экземпляру базы данных.
Поэтому я в тупике и буду признателен за любую помощь.
Версия PHP: 8.0
Использование библиотеки PHP mysqlnd
Пример сообщения об ошибке: «Неустранимая ошибка PHP: Uncaught PDOException: SQLSTATE[HY000] [3159] Соединения, использующие небезопасный транспорт, являются запрещено, пока --require_secure_transport=ON"

Подробнее здесь: https://stackoverflow.com/questions/793 ... sql-8-0-10
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»