MySQLは私の証明書を使用せず、独自の自己署名証明書を使用します

MySQLは私の証明書を使用せず、独自の自己署名証明書を使用します

私はこれに対する答えを見つけようとしましたが、何も見つかりませんでした。

私は、すべての SSL ニーズに使用している LetsEncrypt の証明書を持っています。これは、使用しようとしているすべての DNS 名に有効です。今日、これを MySQL で動作させようとしましたが、MySQL は独自の自己署名証明書の使用を要求します。

MySQL バージョンは、Ubuntu パッケージの 8.0.26-0ubuntu0.20.04.2 です。

次の内容で /etc/mysql/mysql.conf.d/zz-ssl.conf を作成しました:

[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

しかし、ログにはこう書かれています。

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.

/var/lib/mysql/*.pem を削除しようとしましたが、mysql を再起動すると、すべてのファイルが更新されたタイムスタンプで戻ってきます。MySQL は、私が設定した証明書ではなく、独自の自己署名証明書を使用するように設定されているようです。明らかなはずの何かを見逃しているのではないかと思います。

私の設定で参照されているファイル /etc/mysql/cert.pem は、mysql:mysql が所有し、0600 権限を持っています。これは、他のすべてに使用する証明書ファイルのコピーであり、サーバー証明書、秘密鍵、および LetsEncrypt 発行証明書が含まれています。

答え1

ようやくこの問題を解決できました。設定ファイルには .cnf ファイル拡張子が必要です。そうでないと、mysql はそれを無視します。これを修正すると、権限の問題が発生しました。証明書ファイルを 3 つのファイルに分割しましたが、他の 2 つのファイルは root:root が所有していました。これを修正すると、すべてが機能しました。

関連情報