Доброго времени года! При попытке установить соединение с удалённым сервером через PDO с SSL вот так
try{
$db = new PDO("mysql:host=db.server.ru;dbname=testbase",
'ssluser',
'pass',
[
PDO::MYSQL_ATTR_SSL_KEY => VARS . '/certs/client-key.pem',
PDO::MYSQL_ATTR_SSL_CERT => VARS . '/certs/client-cert.pem',
PDO::MYSQL_ATTR_SSL_CA => VARS . '/certs/ca.pem'
]
);
} catch(PDOException $ex){
var_dump($ex->getMessage());
echo "\r\n";
}
Получаю ошибку SQLSTATE[HY000] [2002] без остального текста.
На сервере стоит mariadb.
Сертификаты генерил так. Common name у сертификатов разные
При выполнении на сервере, на котором исполняется скрипт с ошибкой, команды в консоли
mysql -h db.server.ru -ussluser -p --ssl-ca=/var/www/.../var/certs/ca.pem --ssl-cert=/var/www/.../var/certs/client-cert.pem --ssl-key=/var/www/.../var/certs/client-key.pem
подключение происходит нормально, без ошибок.
Каталог с сертификатами выглядит так
drwxrwxrwx 2 apache apache 4096 Mar 15 13:40 . drwxrwxrwx 11 root root 4096 Mar 15 13:40 .. -rwxrwxrwx 1 apache apache 1679 Mar 16 18:14 ca-key.pem -rwxrwxrwx 1 apache apache 1285 Mar 16 18:14 ca.pem -rwxrwxrwx 1 apache apache 1155 Mar 16 18:14 client-cert.pem -rwxrwxrwx 1 apache apache 1675 Mar 16 18:14 client-key.pem -rwxrwxrwx 1 apache apache 985 Mar 16 18:14 client-req.pem -rwxrwxrwx 1 apache apache 1155 Mar 16 18:14 server-cert.pem -rwxrwxrwx 1 apache apache 1679 Mar 16 18:14 server-key.pem -rwxrwxrwx 1 apache apache 985 Mar 16 18:14 server-req.pem
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники