Docker:部署PXC8.0集群时,启动容器报错New joining cluster node didn't find all needed SSL artifacts
使用docker部署mysql PXC集群8.0版本,启动第二个节点的时候遇到报错,New joining cluster node didn't find all needed SSL artifacts。
问题点
Percona XtraDB Cluster包含pxc-encrypt-cluster-traffic
启用SSL加密配置的变量,从而对SST,IST和复制通信进行加密 。
默认情况下pxc-encrypt-cluster-traffic
启用此功能,从而使用安全通道进行复制。此变量不是动态变量,因此无法在运行时更改。
MySQL生成默认的密钥和证书文件,并将它们放置在数据目录中。这些自动生成的文件适用于自动SSL配置,但是您应该在所有节点上使用相同的密钥和证书文件。
解决方法
如上所述,MySQL会生成默认密钥和证书文件,并将它们放置在数据目录中。如果要覆盖这些证书,则可以生成以下新文件集:
- 证书颁发机构(CA)密钥和证书, 用于对服务器和客户端证书进行签名。
- 服务器密钥和证书, 用于保护数据库服务器活动和写集复制流量。
- 客户端密钥和证书, 以保护客户端通信流量。
这些文件应使用OpenSSL生成。
生成CA密钥和证书
证书颁发机构用于验证证书上的签名。
#进入容器 docker exec -it pxc bash #更新apt-get源 apt-get update #下载openssl apt-get install openssl #验证是否下载成功 openssl version -a
生成CA密钥文件
openssl genrsa 2048> ca-key.pem
生成CA证书文件
openssl req -new -x509 -nodes -days 3600 -key ca-key.pem -out ca.pem
生成服务器密钥和证书
生成服务器密钥文件
openssl req -newkey rsa:2048 -days 3600 \ -nodes -keyout server-key.pem -out server-req.pem
删除密码
openssl rsa -in server-key.pem -out server-key.pem
生成服务器证书文件
openssl x509 -req -in server-req.pem -days 3600 \ -CA ca.pem -CAkey ca-key.pem -set_serial 01 \ -out server-cert.pem
生成客户端密钥和证书
生成客户端密钥文件
openssl req -newkey rsa:2048 -days 3600 \ -nodes -keyout client-key.pem -out client-req.pem
删除密码
openssl rsa -in client-key.pem -out client-key.pem
生成客户端证书文件
openssl x509 -req -in client-req.pem -days 3600 \ -CA ca.pem -CAkey ca-key.pem -set_serial 01 \ -out client-cert.pem
验证证书
要验证服务器证书和客户端证书已由CA证书正确签名,请运行以下命令
openssl verify -CAfile ca.pem server-cert.pem client-cert.pem
#如果验证成功,您应该看到以下输出 服务器-证书。PEM : OK 客户端-证书。pem : 好的
部署密钥和证书
将密钥和证书文件发送到每个PXC容器节点内。将它们放在 /etc/mysql/certs/
目录或类似位置下
需要以下文件:
-
证书颁发机构证书文件(
ca.pem和ca-key.pem
)这些文件用于验证签名。
-
服务器密钥和证书文件(
server-key.pem
和server-cert.pem
)这些文件用于保护数据库服务器活动和写集复制流量。
-
客户端密钥和证书文件(
client-key.pem
和client-cert.pem
)仅当节点应充当MySQL客户端时,才需要这些文件。例如,如果您打算使用进行SST
mysqldump
。
#文件赋予权限
chown 1001:1001 *.pem
启动成功!
或者你也可以通过这篇文章部署:
https://www.cnblogs.com/nhdlb/p/14032657.html
文章整合至:https://blog.csdn.net/lengyuehuan/article/details/109742246、https://www.percona.com/doc/percona-xtradb-cluster/8.0/security/encrypt-traffic.html#generate-keys-certs
本文作者:怒吼的萝卜
本文链接:https://www.cnblogs.com/nhdlb/p/14046323.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步