如果服务器端证书是通过via加密完成的,那么如何使用自签名证书来加密与MariaDB的客户端通信呢?
我发现的大多数教程,比如https://www.cyberciti.biz/faq/how-to-setup-mariadb-ssl-and-secure-connections-from-clients/,都向您展示了如何将服务器和客户端证书设置为自签名,共享相同的CA (证书颁发机构)证书。这种方式如预期的那样工作,当我通过命令行连接到DB时,它与客户端加密一起工作。
/etc/my.cnf:
[mariadb]
ssl_cert=/certs/server-cert.pem
ssl_key=/certs/server-key.pem
ssl_ca=/certs/ca-cert.pem/etc/mysql/mariadb.conf.d/50-mysql-clients.cnf:
[mysql]
ssl-ca=/certs/ca-cert.pem
ssl-cert=/certs/client-cert.pem
ssl-key=/certs/client-key.pem使用此配置,此命令可以工作:mysql -u root -p -h mysite.com --port=3310 --protocol=TCP --ssl-cert=/certs/client-cert.pem --ssl-key=/certs/client-key.pem --ssl-ca=/certs/ca-cert.pem --ssl-verify-server-cert
请注意,我自己生成了ca-cert.pem,并使用它同时对服务器和客户端证书进行了签名,并且这些证书得到了正确的验证,并且在登录和检查服务器状态之后,它指示正在使用SSL。
此设置在开发过程中运行良好,但现在我的数据库正在生产中,我希望在服务中使用letsencrypt证书。如果我将/etc/my.cnf文件中的服务器端证书替换为letsencrypt提供的证书,如下所示:
/etc/my.cnf:
[mariadb]
ssl_cert=/certs/cert.pem
ssl_key=/certs/privkey.pem
ssl_ca=/certs/chain.pem但是,将50-mysql-clients.cnf文件与自签名的客户端证书放在一起,它不再允许我使用证书登录。如果我不再尝试使用客户端证书,它仍然允许我使用ssl登录,状态检查表明它仍然在使用SSL,但是文档说,这样客户端数据包就不会加密,只有服务器。
工作的命令:mysql -u root -p -h mysite.com --port=3310 --protocol=TCP --ssl-verify-server-cert
命令不再起作用:mysql -u root -p -h mysite.com --port=3310 --protocol=TCP --ssl-cert=/certs/client-cert.pem --ssl-key=/certs/client-key.pem --ssl-ca=/certs/ca-cert.pem --ssl-verify-server-cert
错误消息:ERROR 2026 (HY000): SSL connection error: unable to get local issuer certificate
使用命令中生成的服务器证书-- letsencrypt --也不能工作:mysql -u root -p -h mysite.com --port=3310 --protocol=TCP --ssl-ca=/certs/chain.pem --ssl-cert=/certs/cert.pem --ssl-key=/certs/privkey.pem --ssl-verify-server-cert
错误消息:ERROR 2026 (HY000): SSL connection error: unable to get issuer certificate
状态检查:
MariaDB [(none)]> status
--------------
mysql Ver 15.1 Distrib 10.5.8-MariaDB, for osx10.15 (x86_64) using readline 5.1
Connection id: 4
Current database:
Current user: root@myipaddress
SSL: Cipher in use is TLS_AES_256_GCM_SHA384
Current pager: less
Using outfile: ''
Using delimiter: ;
Server: MariaDB
Server version: 10.5.4-MariaDB-1:10.5.4+maria~focal mariadb.org binary distribution
Protocol version: 10
Connection: mysite.com via TCP/IP
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: utf8
Conn. characterset: utf8
TCP port: 3310
Uptime: 3 min 33 sec在使用MariaDB的letsencrypt证书时,我如何仍然可以同时使用客户端和服务器进行双向ssl加密?
发布于 2022-08-04 15:11:07
太久了不能发表评论..。
。
https://stackoverflow.com/questions/73229104
复制相似问题