MySQL OpenSSL – error 18 at 0 depth lookup:self signed certificate错误

MySQL OpenSSL – error 18 at 0 depth lookup:self signed certificate错误

MySQL是一个开源关系型数据库管理系统,SSL是安全套接字层的缩写,它是一种保护网络应用程序传输机密数据的标准安全技术。

在使用MySQL时,有时会遇到“error 18 at 0 depth lookup:self signed certificate”的错误,该错误通常是因为MySQL使用了自签名证书,导致OpenSSL不信任并拒绝连接。

阅读更多:MySQL 教程

解决方案

方法一:忽略SSL证书验证

忽略掉SSL证书验证并不是最好的方法,但是对于测试或开发环境可以使用。

在MySQL连接时,添加以下参数:

mysql -h hostname -u username -p --ssl-mode=DISABLED

方法二:生成自签名证书

如果允许使用自签名证书,可以通过以下步骤生成并安装:

  1. 生成自签名证书
openssl req -newkey rsa:2048 -nodes -keyout server.key -x509 -days 365 -out server.crt

该命令将生成一个有效期为1年的自签名证书。其中server.key是私钥文件,server.crt是证书文件。

  1. 修改MySQL配置文件

找到MySQL配置文件my.cnf,添加以下配置:

[mysqld]
ssl-ca=/path/to/server.crt
ssl-cert=/path/to/server.crt
ssl-key=/path/to/server.key
  1. 重启MySQL服务器
sudo systemctl restart mysql

方法三:使用CA签名证书

较为安全的方法是使用CA签名证书,这样可以避免自签名证书的风险。

  1. 申请CA证书

需要先申请CA证书,可以通过第三方机构如VeriSign、GlobalSign和GoDaddy等获得。

  1. 安装CA证书

将CA证书安装到MySQL服务器上。

  1. 配置MySQL

找到MySQL配置文件my.cnf,添加以下配置:

[mysqld]
ssl-ca=/path/to/ca.crt
ssl-cert=/path/to/server.crt
ssl-key=/path/to/server.key
  1. 重启MySQL服务器
sudo systemctl restart mysql

总结

MySQL OpenSSL – error 18 at 0 depth lookup:self signed certificate错误通常是由于MySQL使用了自签名证书导致的。针对这个问题,我们可以采用忽略SSL证书验证、生成自签名证书或使用CA签名证书等解决方法,具体选择哪种方法需要根据实际情况来决定。对于生产环境,建议使用CA签名证书,以保证安全性和稳定性。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程