Версия пакета: php8.4-mysqlnd-8.4.4-alt1.x86_64 php8.4-mysqlnd-mysqli-8.4.4-alt1.1.x86_64 libmysqlclient21-8.0.41-alt1.x86_64 mariadb-server-11.4.5-alt1.x86_64 mariadb-client-11.4.5-alt1.x86_64 Тестовые стенды: Alt Workstation K 11.0 x86-64 (обновленный до Sisyphus) Alt Workstation 11.0 x86-64 (обновленный до Sisyphus) Alt Education/Education-kde 11.0 x86-64 (обновленный до Sisyphus) Alt Server 11.0 x86-64 (обновленный до Sisyphus) Шаги воспроизведения: 1) Установить пакеты: # apt-get install -y mariadb-server mariadb-client php8.4 php8.4-mysqlnd php8.4-mysqlnd-mysqli # control mysqld-chroot disabled 2) Настроить сертификаты: # mkdir /etc/pki/tls/certs/mysql/ # cd /etc/pki/tls/certs/mysql/ # openssl req -x509 -newkey rsa:1024 -keyout server-key-enc.pem -out server-cert.pem -subj '/CN=localhost' -passout pass:123 -days 999 # openssl rsa -in server-key-enc.pem -out server-key.pem -passin pass:123 -passout pass: # openssl req -x509 -newkey rsa:1024 -keyout client-key-enc.pem -out client-cert.pem -subj '/CN=client' -passout pass:123 -days 999 # openssl rsa -in client-key-enc.pem -out client-key.pem -passin pass:123 -passout pass: # cat {server,client}-cert.pem > ca-cert.pem # openssl verify -CAfile ca-cert.pem ./*-cert.pem # chown -R mysql:mysql /etc/pki/tls/certs/mysql 3) Создать файл: # cat > /etc/my.cnf.d/tests-mysqlnd.cnf << EOF [server] ssl-key=/etc/pki/tls/certs/mysql/server-key.pem ssl-cert=/etc/pki/tls/certs/mysql/server-cert.pem [client] ssl-key=/etc/pki/tls/certs/mysql/client-key.pem ssl-cert=/etc/pki/tls/certs/mysql/client-cert.pem ssl-verify-server-cert=1 [client-server] ssl-ca=/etc/pki/tls/certs/mysql/ca-cert.pem ssl=1 EOF 4) Запустить службу mysqld: # systemctl enable --now mysqld.service && sleep 5; systemctl status mysqld.service Ожидаемый результат: успешный запуск службы Реальный результат: ошибка SSL error: Unable to get certificate Дополнительно: аналогичные шаги для MySQL-server не приводят к ошибке.
Начиная с версии 11.4 для работы SSL никаких дополнительных настроек производить не нужно, все операции по генерации сертификатов и ключей процесс mysqld производит самостоятельно при запуске и хранит их в памяти ( https://mariadb.com/kb/en/securing-connections-for-client-and-server/ ). Для проверки работоспособности достаточно при подключении к субд запускать утилиту mariadb с ключем ssl
И замечание к методике тестирования. Если задать размер ключа не 1024, как в примере, а, к примеру, 4096, то тогда все отрабатывает успешно. Предлагаю внести изменение в методику тестирования, увеличив размер ключе до 4096.
И так же привожу конфиг, учитывающий синтаксис MariaDB: [mariadb] ssl-key=/etc/pki/tls/certs/mysql/server-key.pem ssl-cert=/etc/pki/tls/certs/mysql/server-cert.pem ssl-ca=/etc/pki/tls/certs/mysql/ca-cert.pem [client-mariadb] ssl-key=/etc/pki/tls/certs/mysql/client-key.pem ssl-cert=/etc/pki/tls/certs/mysql/client-cert.pem ssl-ca=/etc/pki/tls/certs/mysql/ca-cert.pem ssl-verify-server-cert=1