MySQL verwendet nicht mein Zertifikat, sondern ein eigenes selbstsigniertes

MySQL verwendet nicht mein Zertifikat, sondern ein eigenes selbstsigniertes

Ich habe versucht, eine Antwort darauf zu finden, bin aber nicht fündig geworden.

Ich habe ein Zertifikat von LetsEncrypt, das ich für alle meine SSL-Anforderungen verwende. Es ist für alle DNS-Namen gültig, die ich verwenden möchte. Heute habe ich versucht, es für MySQL zum Laufen zu bringen, aber MySQL besteht darauf, sein eigenes selbstsigniertes Zertifikat zu verwenden.

Die MySQL-Version ist 8.0.26-0ubuntu0.20.04.2 aus Ubuntu-Paketen.

Ich habe /etc/mysql/mysql.conf.d/zz-ssl.conf mit diesem Inhalt erstellt:

[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

Aber im Protokoll steht Folgendes:

2021-08-08T16:16:57.982003Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1 is enabled for channel mysql_main
2021-08-08T16:16:57.982227Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1.1 is enabled for channel mysql_main
2021-08-08T16:16:57.983344Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.

Ich habe versucht, /var/lib/mysql/*.pem zu löschen ... aber wenn ich MySQL neu starte, kommen alle diese Dateien mit aktualisierten Zeitstempeln zurück. MySQL scheint entschlossen zu sein, sein eigenes selbstsigniertes Zertifikat zu verwenden und nicht das, das ich konfiguriert habe. Ich glaube, ich übersehe etwas, das offensichtlich sein sollte, es aber nicht ist.

Die in meiner Konfiguration referenzierte Datei /etc/mysql/cert.pem gehört mysql:mysql und hat die Berechtigung 0600. Es handelt sich um eine Kopie der Zertifikatsdatei, die ich für alles andere verwende. Sie enthält das Serverzertifikat, den privaten Schlüssel und das ausstellende Zertifikat von LetsEncrypt.

Antwort1

Ich habe das endlich herausgefunden. Die Konfigurationsdateien müssen die Dateierweiterung .cnf haben, sonst ignoriert MySQL sie. Und nachdem ich das behoben hatte, hatte ich ein Berechtigungsproblem – ich hatte die Zertifikatsdatei in drei separate Dateien aufgeteilt, aber die anderen beiden Dateien gehörten root:root. Nachdem ich das behoben hatte, funktionierte alles.

verwandte Informationen