Я пытался найти ответ на этот вопрос и ничего не понял.
У меня есть сертификат от LetsEncrypt, который я использую для всех своих потребностей в SSL. Это действительно для всех DNS-имен, которые я пытаюсь использовать. Сегодня я попытался заставить его работать для MySQL, но MySQL настаивает на использовании собственного самозаверяющего сертификата.
Версия MySQL 8.0.26-0ubuntu0.20.04.2 из пакетов Ubuntu.
Я создал файл /etc/mysql/mysql.conf.d/zz-ssl.conf со следующим содержимым:
[mysqld]
ssl-ca=/etc/ssl/certs/local/mainchain.pem
SSL-сертификат=/etc/mysql/cert.pem
SSL-ключ=/etc/mysql/cert.pem
[система_по умолчанию_секта]
Минпротокол = TLSv1.2
Но в логе написано следующее:
2021-08-08T16:16:57.982003Z 0 [Предупреждение] [MY-013746] [Сервер] Для канала mysql_main включена устаревшая версия TLS TLSv1
2021-08-08T16:16:57.982227Z 0 [Предупреждение] [MY-013746] [Сервер] Для канала mysql_main включена устаревшая версия TLS TLSv1.1.
2021-08-08T16:16:57.983344Z 0 [Предупреждение] [MY-010068] [Сервер] Сертификат ЦС ca.pem является самозаверяющим.
Я пытался удалить /var/lib/mysql/*.pem... но когда я перезапускаю mysql, все эти файлы возвращаются с обновленными временными метками. MySQL, похоже, решил использовать свой собственный самозаверяющий сертификат, а не тот, который я настроил. Я полагаю, что мне не хватает чего-то, что должно быть очевидным, но это не так.
Файл /etc/mysql/cert.pem, указанный в моей конфигурации, принадлежит mysql:mysql и имеет права доступа 0600. Это копия файла сертификата, который я использую для всего остального, он содержит сертификат сервера, закрытый ключ и сертификат выдачи LetsEncrypt.