我试图找出答案,结果却空空如也。
我有一个来自LetsEncrypt的证书,用于我所有的SSL需求。它对我试图使用的所有DNS名称都是有效的。今天我试着让它在MySQL上工作,但是MySQL坚持使用它自己签署的证书。
Ubuntu包的MySQL版本是8.0.26-0ubuntu0.20.04.2。
我创建了/etc/mysql/mysql.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颁发证书。
发布于 2021-08-08 16:45:44
我终于弄明白了。配置文件必须具有.cnf文件扩展名,否则mysql将忽略它们。一旦修复了这个问题,我就遇到了一个权限问题--我将cert文件分割成三个单独的文件,但是其他两个文件属于root:root。一旦我修好了,一切都正常了。
https://serverfault.com/questions/1073901
复制相似问题