MariaDB: Проверка имени хоста не удалась при запуске

Вопрос или проблема

Запуск 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

Ключевые аспекты:

  1. ssl_cert и ssl_key: Убедитесь, что указанные ssl_cert и ssl_key соответствуют вашему хосту. Для успешной проверки имени хоста сертификат должен включать правильное имя хоста.

  2. Настройки hostname: Ваша система правильно распознает полное доменное имя:

    hostname -f
    dbhost.domain.tld

    Однако важно проверить, правильно ли настроены файлы /etc/hosts. Ваша текущая конфигурация выглядит приемлемо, но убедитесь, что не происходит каких-либо конфликтах на уровне DNS.

Возможные решения

Чтобы устранить ошибку проверки имени хоста, рассмотрите следующие шаги:

  1. Проверка сертификата: Убедитесь, что сертификат действительно был выдан для dbhost.domain.tld. Используйте команду:

    openssl x509 -in /etc/acme/dbhost.domain.tld/fullchain.pem -text -noout

    Проверьте раздел "Subject" и убедитесь, что он содержит правильное имя хоста.

  2. Добавление параметров проверки имени хоста: Если ваш сертификат не поддерживает проверку по имени, вы можете временно отключить проверку имени хоста для отладки. В вашем конфигурационном файле [mysqld] добавьте:

    skip-name-resolve

    Однако это может негативно сказаться на безопасности, особенно если вы взаимодействуете с удаленными клиентами.

  3. Проверка переменных окружения: Убедитесь, что переменные окружения и конфигурации клиента, с которых выполняется скрипт debian-start, соответствуют вашим настройкам. Возможно, они по умолчанию используют другие параметры подключения.

  4. Обновление конфигурации: Возможно, вам потребуется индивидуально настроить пользователя, чтобы разрешить SSL-соединение без проверки имени. Для этого выполните:

    CREATE USER 'username'@'%' REQUIRE SSL;

    Однако будьте осторожны с настройками для обеспечения безопасности.

Заключение

Проблема с проверкой имени хоста при старте MariaDB может быть решена через правильную настройку сертификатов и конфигурации сервера. Проверяйте конфигурацию TLS/SSL и убедитесь, что все пути и имена соответствуют требуемым.

Если предложения не помогают, рассмотрите возможность обращения к документации MariaDB или сообществу для получения более детальной информации. Успехов в настройке!

Оцените материал
Добавить комментарий

Капча загружается...