MariaDB / MySQL找不到SSL证书

时间:2019-06-04 19:56:47

标签: ssl openssl ssl-certificate mariadb

我配置了SSL证书,并在具有MariaDB的Centos 7服务器上正常工作。然后,我将证书从/etc/ssl/certs文件夹移到了根目录,并关闭了SSL。当我将证书移回其原始位置并重新启动MariaDB时,SSL无法启动。我按照以下说明删除了证书并创建了新证书。

我再次检查了这些文件是否由mysql和0600权限所拥有,就像在移动它们之前一样。

/var/log/mariadb/mariadb.log文件中报告的错误是:

[Warning] SSL error: SSL_CTX_set_default_verify_paths failed

以下是创建证书时使用的命令。

1)使用自签名证书设置

Centos 7中证书的默认位置是/ etc / ssl / certs(该符号链接到/ etc / pki / tls / certs)

https://www.cyberciti.biz/faq/how-to-setup-mariadb-ssl-and-secure-connections-from-clients/

# cd /etc/ssl/certs
# openssl genrsa 2048 > ca-key.pem
# openssl req -new -x509 -nodes -days 365000 -key ca-key.pem -out ca-cert.pem
# openssl req -newkey rsa:2048 -days 365000 -nodes -keyout server-key.pem -out server-req.pem
*** The ‘Common Name’ must be different for all 3 certs *** 

# openssl rsa -in server-key.pem -out server-key.pem
# openssl x509 -req -in server-req.pem -days 365000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem
# openssl req -newkey rsa:2048 -days 365000 -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 365000 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem
# openssl verify -CAfile ca-cert.pem server-cert.pem client-cert.pem

2)设置证书和密钥文件的所有权

# cd /etc/ssl/certs
# chown mysql:mysql *.pem
# chmod 600 *.pem

3)编辑my.cnf文件,并将以下内容添加到 [mysqld] section:

ssl
ssl-ca=/etc/ssl/certs/ca-cert.pem
ssl-cert=/etc/ssl/certs/server-cert.pem
ssl-key=/etc/ssl/certs/server-key.pem
ssl-cipher=kEECDH:+kEECDH+SHA:kEDH:+kEDH+SHA:+kEDH+CAMELLIA:kECDH:+kECDH+SHA:kRSA:+kRSA+SHA:+kRSA+CAMELLIA:!aNULL:!eNULL:!SSLv2:!RC4:!DES:!EXP:!SEED:!IDEA:!3DES

4)编辑my.cnf文件,并将以下内容添加到结尾部分:

[client]
ssl-ca=/etc/ssl/certs/ca-cert.pem
ssl-cert=/etc/ssl/certs/client-cert.pem
ssl-key=/etc/ssl/certs/client-key.pem
6) Restart MySQL 
systemctl restart mariadb

5)登录并检查SSL状态:

SHOW VARIABLES LIKE '%ssl%';
STATUS;

此时,MariaDB / MySQL显示证书已禁用。通过复制文件路径并使用ls命令显示文件存在,可以验证my.cnf文件中每个条目的路径。

我认为这可能是一个错误:

https://bugs.mysql.com/bug.php?id=83592

目录路径或目录路径文件夹的符号链接上的权限都没有更改(在下面发布),因此我认为它们仍将允许mariaDB查找文件。

# ls -la /etc/ssl/certs
lrwxrwxrwx. 1 root root 16 May 16  2018 /etc/ssl/certs -> ../pki/tls/certs
# ls -la /etc/pki/tls/
drwxrwx---.  3 root root   149 Jun  4 20:18 certs

0 个答案:

没有答案