Вопрос или проблема
Запуск MariaDB 11.5.2 на Debian 12.
Я настроил TLS, который работает идеально. Чтобы это работало из терминала, я настроил
[client-mariadb]
host = dbhost.domain.tld
Теперь я могу подключаться из терминала без проблем, используяmariadb -p
.
Но во время запуска, похоже, все еще есть проблема
Дек 11 11:13:46 dbhost mariadbd[204214]: Версия: '11.5.2-MariaDB-deb12-log' сокет: '/run/mysqld/mysqld.sock' порт: 3306 бинарная дистрибуция mariadb.org
Дек 11 11:13:46 dbhost systemd[1]: Запущена mariadb.service - сервер баз данных MariaDB 11.5.2.
Дек 11 11:13:46 dbhost /etc/mysql/debian-start[204231]: Если необходимо, обновление таблиц MariaDB.
Дек 11 11:13:46 dbhost /etc/mysql/debian-start[204235]: Чтение datadir с сервера MariaDB не удалось. Получена следующая ошибка при выполнении клиентской команды 'mysql'
Дек 11 11:13:46 dbhost /etc/mysql/debian-start[204235]: ОШИБКА 2026 (HY000): Ошибка TLS/SSL: Проверка имени хоста не удалась
Дек 11 11:13:46 dbhost /etc/mysql/debian-start[204235]: ФАТАЛЬНАЯ ОШИБКА: Обновление не удалось
Дек 11 11:13:46 dbhost debian-start[204248]: ОШИБКА 2026 (HY000): Ошибка TLS/SSL: Проверка имени хоста не удалась
Моя конфигурация
[mysqld]
ssl_ca = /etc/ssl/certs/ca.pem
ssl_cert = /etc/acme/dbhost.domain.tldfullchain.pem
ssl_key = /etc/acme/dbhost.domain.tld.bsz-bw.de-key.pem
#require-secure-transport = on
Последняя настройка отключена, потому что, похоже, она нарушает работу моего приложения. SSL требуется на уровне пользователя. Но я не понимаю, почему тогда проверка имени хоста не удается во время запуска.
Кажется, что сконфигурированное имя хоста здесь не используется. Как заставить работать SSL, но чтобы не было таких ошибок в логах?
Дополнительная информация
head /etc/hosts
127.0.0.1 localhost
127.0.1.1 dbhost.domain.tld dbhost
root@dbhost ~ $ hostname -s
dbhost
root@dbhost ~ $ hostname -d
domain.tld
root@dbhost ~ $ hostname -f
dbhost.domain.tld
Ответ или решение
Решение проблемы: Ошибка проверки имени хоста при старте MariaDB на Debian 12
Введение
Проблема, описанная при использовании MariaDB версии 11.5.2 на Debian 12, связана с ошибкой проверки имени хоста при использовании TLS/SSL. В данной статье мы рассмотрим причины возникновения данной проблемы и возможные пути её решения.
Признаки проблемы
При запуске службы MariaDB вы наблюдаете следующие ошибки:
ERROR 2026 (HY000): TLS/SSL error: Hostname verification failed
FATAL ERROR: Upgrade failed
Это указывает на то, что во время инициализации базы данных происходит сбой TLS-соединения из-за неверного имени хоста.
Анализ конфигурации
Согласно предоставленным данным, вы настроили TLS с использованием следующих конфигураций:
[mysqld]
ssl_ca = /etc/ssl/certs/ca.pem
ssl_cert = /etc/acme/dbhost.domain.tld/fullchain.pem
ssl_key = /etc/acme/dbhost.domain.tld/bsz-bw.de-key.pem
Ключевые аспекты:
-
ssl_cert и ssl_key: Убедитесь, что указанные
ssl_cert
иssl_key
соответствуют вашему хосту. Для успешной проверки имени хоста сертификат должен включать правильное имя хоста. -
Настройки hostname: Ваша система правильно распознает полное доменное имя:
hostname -f dbhost.domain.tld
Однако важно проверить, правильно ли настроены файлы
/etc/hosts
. Ваша текущая конфигурация выглядит приемлемо, но убедитесь, что не происходит каких-либо конфликтах на уровне DNS.
Возможные решения
Чтобы устранить ошибку проверки имени хоста, рассмотрите следующие шаги:
-
Проверка сертификата: Убедитесь, что сертификат действительно был выдан для
dbhost.domain.tld
. Используйте команду:openssl x509 -in /etc/acme/dbhost.domain.tld/fullchain.pem -text -noout
Проверьте раздел "Subject" и убедитесь, что он содержит правильное имя хоста.
-
Добавление параметров проверки имени хоста: Если ваш сертификат не поддерживает проверку по имени, вы можете временно отключить проверку имени хоста для отладки. В вашем конфигурационном файле
[mysqld]
добавьте:skip-name-resolve
Однако это может негативно сказаться на безопасности, особенно если вы взаимодействуете с удаленными клиентами.
-
Проверка переменных окружения: Убедитесь, что переменные окружения и конфигурации клиента, с которых выполняется скрипт
debian-start
, соответствуют вашим настройкам. Возможно, они по умолчанию используют другие параметры подключения. -
Обновление конфигурации: Возможно, вам потребуется индивидуально настроить пользователя, чтобы разрешить SSL-соединение без проверки имени. Для этого выполните:
CREATE USER 'username'@'%' REQUIRE SSL;
Однако будьте осторожны с настройками для обеспечения безопасности.
Заключение
Проблема с проверкой имени хоста при старте MariaDB может быть решена через правильную настройку сертификатов и конфигурации сервера. Проверяйте конфигурацию TLS/SSL и убедитесь, что все пути и имена соответствуют требуемым.
Если предложения не помогают, рассмотрите возможность обращения к документации MariaDB или сообществу для получения более детальной информации. Успехов в настройке!