我正在尝试使用 SSL 加密复制初始化新的 MariaDB Galera 集群。
我已经关注本指南信中规定了 CA、服务器和客户端证书的不同细节(我阅读可能存在问题当它们完全相同时),并将我的证书文件放在/etc/mysql/ssl/
。
root@server:/etc/mysql/ssl# openssl verify -CAfile ca-cert.pem server-cert.pem client-cert.pem
server-cert.pem: OK
client-cert.pem: OK
root@server:/etc/mysql/ssl#
这些是我的 SSL 相关设置:
[mysqld]
ssl-ca = /etc/mysql/ssl/ca-cert.pem
ssl-key = /etc/mysql/ssl/server-key.pem
ssl-cert = /etc/mysql/ssl/server-cert.pem
wsrep_provider_options="socket.ssl_key=/etc/mysql/ssl/server-key.pem;socket.ssl_cert=/etc/mysql/ssl/server-cert.pem;socket.ssl_ca=/etc/mysql/ssl/ca-cert.pem;socket.checksum=2;socket.ssl_cipher=AES128-SHA"
[mysql]
ssl-ca = /etc/mysql/ssl/ca-cert.pem
ssl-key = /etc/mysql/ssl/client-key.pem
ssl-cert = /etc/mysql/ssl/client-cert.pem
当我尝试使用启动我的第一个节点时service mysql start --wsrep-new-cluster
,出现以下错误:
2016-02-02 14:01:25 140601166120896 [ERROR] WSREP: Bad value '/etc/mysql/ssl/server-key.pem' for SSL parameter 'socket.ssl_key': : 22 (Invalid argument)
at galerautils/src/gu_asio.cpp:ssl_prepare_context():148
2016-02-02 14:01:25 140601166120896 [ERROR] WSREP: wsrep::init() failed: 7, must shutdown
2016-02-02 14:01:25 140601166120896 [ERROR] Aborting
我找到代码抛出该错误,但它并没有帮助我找到问题的原因。
我正在使用 MariaDB 10.1.11 和 Galera 25.3.12。
答案1
我的权限被关闭了。以下方法修复了这个问题:
root@server:/etc/mysql# chmod 500 /etc/mysql/ssl/
root@server:/etc/mysql# chmod 400 /etc/mysql/ssl/*
root@server:/etc/mysql# chown -R mysql:mysql /etc/mysql/ssl/
答案2
在我的情况下,修复权限不起作用,我必须为 mysqld_t 激活宽容模式semanage permissive -a mysqld_t
加拉太尔
allow mysqld_t admin_home_t:file { getattr open read };