Am încercat să găsesc un răspuns la asta și am venit gol.
Am un certificat de la LetsEncrypt pe care îl folosesc pentru toate nevoile mele SSL. Este valabil pentru toate numele DNS pe care încerc să le folosesc. Astăzi am încercat să-l fac să funcționeze pentru MySQL, dar MySQL insistă să folosească propriul certificat autosemnat.
Versiunea MySQL este 8.0.26-0ubuntu0.20.04.2 din pachetele Ubuntu.
Am creat /etc/mysql/mysql.conf.d/zz-ssl.conf cu acest conținut:
[mysqld]
ssl-ca=/etc/ssl/certs/local/mainchain.pem
ssl-cert=/etc/mysql/cert.pem
ssl-key=/etc/mysql/cert.pem
[system_default_sect]
MinProtocol = TLSv1.2
Dar jurnalul spune asta:
2021-08-08T16:16:57.982003Z 0 [Avertisment] [MY-013746] [Server] O versiune TLS depreciată TLSv1 este activată pentru canalul mysql_main
2021-08-08T16:16:57.982227Z 0 [Avertisment] [MY-013746] [Server] O versiune TLS depreciată TLSv1.1 este activată pentru canalul mysql_main
2021-08-08T16:16:57.983344Z 0 [Avertisment] [MY-010068] [Server] Certificat CA ca.pem este autosemnat.
Am încercat să șterg /var/lib/mysql/*.pem... dar când repornesc mysql, toate acele fișiere revin cu marcaje de timp actualizate. MySQL pare hotărât să folosească propriul certificat autosemnat și nu pe cel pe care l-am configurat. Cred că îmi scapa ceva care ar trebui să fie evident, dar nu este.
Fișierul /etc/mysql/cert.pem la care se face referire în configurația mea este deținut de mysql:mysql și are permisiuni 0600. Este o copie a fișierului de certificat pe care îl folosesc pentru orice altceva, conține certificatul serverului, cheia privată și certificatul de emitere LetsEncrypt.