У меня возникли проблемы с подключением к базе данных 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 Fatal error: Uncaught PDOException: SQLSTATE[HY000] [3159] Connections using insecure transport are prohibited while --require_secure_transport=ON"
Подробнее здесь: https://stackoverflow.com/questions/793 ... sql-8-0-10
Как установить зашифрованное соединение PDO (SSL) в PHP с mysql > 8.0.10 [дубликат] ⇐ Php
Кемеровские программисты php общаются здесь
1736286994
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 Fatal error: Uncaught PDOException: SQLSTATE[HY000] [3159] Connections using insecure transport are prohibited while --require_secure_transport=ON"
Подробнее здесь: [url]https://stackoverflow.com/questions/79337228/how-to-establish-pdo-encrypted-ssl-connection-in-php-to-mysql-8-0-10[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия