Mysql 如何监视复制证书和客户端证书的SSL过期?
有许多工具可用于监控通过HTTPS提供的服务的SSL过期,例如,当SSL证书在中过期时,我们用于接收警报。目前,没有服务器变量或API函数可用于确定服务器证书的验证期 一个简单的解决方法是(假设未设置secure_file_priv):Mysql 如何监视复制证书和客户端证书的SSL过期?,mysql,ssl,mariadb,prometheus,percona,Mysql,Ssl,Mariadb,Prometheus,Percona,有许多工具可用于监控通过HTTPS提供的服务的SSL过期,例如,当SSL证书在中过期时,我们用于接收警报。目前,没有服务器变量或API函数可用于确定服务器证书的验证期 一个简单的解决方法是(假设未设置secure_file_priv): 已脱机与我共享解决方案,请参阅 MariaDB具有显示SSL过期信息的变量: mysql> show status like 'ssl_server_not%'; +-----------------------+---------------------
已脱机与我共享解决方案,请参阅 MariaDB具有显示SSL过期信息的变量:
mysql> show status like 'ssl_server_not%';
+-----------------------+--------------------------+
| Variable_name | Value |
+-----------------------+--------------------------+
| Ssl_server_not_after | May 24 11:46:23 2020 GMT |
| Ssl_server_not_before | Feb 24 11:46:23 2020 GMT |
+-----------------------+--------------------------+
2 rows in set (0.00 sec)
一旦我找到了解决方法,我将更新此解决方案
谢谢你的回答,教会了我一些东西。这并不能完全解决问题,例如,这只能确认
/etc/mysql/server-cert.pem
文件已经更新(运行Ansible应该可以保证更新),但不能确认mysql实际加载了最新文件中的内容。有趣的是,不存在任何服务器变量或API函数。进一步思考:也许比较正常运行时间和文件的时间戳是一个不错的解决方案?因为问题被标记为mariadb:如果安装了新证书,就不需要重新启动。改用FLUSH SSL
。谢谢Georg,这非常有帮助,我以前没有意识到。这正是我想要的。
$ 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
mysql> show status like 'ssl_server_not%';
+-----------------------+--------------------------+
| Variable_name | Value |
+-----------------------+--------------------------+
| Ssl_server_not_after | May 24 11:46:23 2020 GMT |
| Ssl_server_not_before | Feb 24 11:46:23 2020 GMT |
+-----------------------+--------------------------+
2 rows in set (0.00 sec)