Tôi đã cố gắng tìm một câu trả lời cho điều này và tôi đã đi đến chỗ trống rỗng.
Tôi có chứng chỉ từ LetsEncrypt mà tôi sử dụng cho mọi nhu cầu SSL của mình. Nó hợp lệ cho tất cả các tên DNS mà tôi đang cố sử dụng. Hôm nay tôi đã cố gắng làm cho nó hoạt động với MySQL, nhưng MySQL khăng khăng sử dụng chứng chỉ tự ký của chính nó.
Phiên bản MySQL là 8.0.26-0ubuntu0.20.04.2 từ các gói Ubuntu.
Tôi đã tạo /etc/mysql/mysql.conf.d/zz-ssl.conf với các nội dung sau:
[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
Nhưng nhật ký nói điều này:
2021-08-08T16:16:57.982003Z 0 [Cảnh báo] [MY-013746] [Máy chủ] Phiên bản TLS không dùng nữa TLSv1 được bật cho kênh mysql_main
2021-08-08T16:16:57.982227Z 0 [Cảnh báo] [MY-013746] [Máy chủ] Phiên bản TLS không dùng nữa TLSv1.1 được bật cho kênh mysql_main
2021-08-08T16:16:57.983344Z 0 [Cảnh báo] [MY-010068] [Máy chủ] Chứng chỉ CA ca.pem tự ký.
Tôi đã thử xóa /var/lib/mysql/*.pem ... nhưng khi tôi khởi động lại mysql, tất cả các tệp đó quay lại với dấu thời gian được cập nhật. MySQL dường như quyết tâm sử dụng chứng chỉ tự ký của chính nó chứ không phải chứng chỉ tôi đã định cấu hình. Tôi nghĩ rằng tôi đang thiếu một cái gì đó rõ ràng nhưng không phải vậy.
Tệp /etc/mysql/cert.pem được tham chiếu trong cấu hình của tôi thuộc sở hữu của mysql:mysql và có 0600 quyền. Nó là bản sao của tệp chứng chỉ mà tôi sử dụng cho mọi thứ khác, nó chứa chứng chỉ máy chủ, khóa riêng tư và chứng chỉ phát hành LetsEncrypt.