如何监视复制和客户端证书的MariaDB SSL到期?

问题描述 投票:0回答:1

[有许多工具可监视SSL过期,以确保可通过HTTPS获得的服务,例如当内部和外部服务上的SSL证书在<14天后过期时,我们将使用https://github.com/prometheus/blackbox_exporter接收警报。

我们将Percona的XtraDB群集(即MariaDB)与SSL一起用于前端和复制流量。 relevant配置如下所示:

$ less /etc/mysql/percona-xtradb-cluster.conf.d/mysqld.cnf
[mysqld]
pxc_encrypt_cluster_traffic=ON
ssl-ca=/etc/ssl/xtradb_server_ca.pem
ssl-cert=/etc/ssl/xtradb_server_cert.pem
ssl-key=/etc/ssl/xtradb_server_key.pem

[client]
ssl-ca=/etc/ssl/xtradb_server_ca.pem
ssl-cert=/etc/ssl/xtradb_server_cert.pem
ssl-key=/etc/ssl/xtradb_server_key.pem

我们尚未发现的问题:您如何监视mysqld.service加载的证书的SSL到期?

[我们使用Ansible在每个主机上部署新证书并执行mysqld.service的滚动重新启动,但是监视并确认这些证书已正确更新将非常有用。

是否有一个通用的解决方案?

mysql ssl mariadb prometheus percona
1个回答
0
投票

当前没有服务器变量或API函数可用于确定服务器证书的验证期限。

一个简单的解决方法是:

$ mysql -e "SHOW VARIABLES LIKE 'ssl_cert'"
+---------------+----------------------------+
| Variable_name | Value                      |
+---------------+----------------------------+
| ssl_cert      | /etc/mysql/server-cert.pem |
+---------------+----------------------------+
$ mysql  -e "SELECT LOAD_FILE('/etc/mysql/server-cert.pem')\G" > server-cert.pem
$ openssl x509 -enddate -noout -in ./server-cert.pem
notAfter=Jan 22 10:11:10 2021 GMT
© www.soinside.com 2019 - 2024. All rights reserved.