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启用S​​SL加密配置的变量,从而对SSTIST和复制通信进行加密 。

默认情况下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.pemca-key.pem

    这些文件用于验证签名。

  • 服务器密钥和证书文件(server-key.pemserver-cert.pem

    这些文件用于保护数据库服务器活动和写集复制流量。

  • 客户端密钥和证书文件(client-key.pemclient-cert.pem

    仅当节点应充当MySQL客户端时,才需要这些文件。例如,如果您打算使用进行SST mysqldump

#文件赋予权限
chown 1001:1001 *.pem

 启动成功!

或者你也可以通过这篇文章部署:

https://www.cnblogs.com/nhdlb/p/14032657.html

文章整合至:https://blog.csdn.net/lengyuehuan/article/details/109742246https://www.percona.com/doc/percona-xtradb-cluster/8.0/security/encrypt-traffic.html#generate-keys-certs

原文地址:https://www.cnblogs.com/nhdlb/p/14046323.html