使用此命令时出现此错误:
ssldir=/home/inet/devel/config/mysql_ssl
mysql \
-vvvvv \
-u ***** \
-p \
-h eos3 \
--ssl-ca $ssldir/cacert.pem \
--ssl-cert $ssldir/server-cert.pem \
--ssl-key $ssldir/server-key.pem
eos3服务器在RHEL6,openssl-1.0.1e-fips MySQL 5.1.73
我有 3 台其他服务器正在尝试建立连接 A) RHEL7 mariadb-5.5.68, openssl-1.0.2k-fips B) RHEL8 MySQL 8.0.26, openssl-1.1.1k FIPS C) RHEL9 mariadb-10.5.16, openssl-3.0.1
A 和 C 连接没有问题,B 有,如果我在 RHEL9 上尝试 MySQL 8.0.30,它也会失败
我真的想解决 PHP 8.0 无法与 eos3 建立 SSL 连接的问题。
我读过一些帖子说尝试放宽 /etc/ssl/openssl.cnf 中的设置,但我的服务器都没有那个文件,而是在 /etc/pki/tls 中。在那里进行此更改没有帮助。
MinProtocol = TLSv1 CipherString = DEFAULT@SECLEVEL=1
EOS3建立MySQL SSL连接时返回的密码列表为: | SSL_密码列表 | ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:EC DHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA -AES256-SHA:DHE-DSS-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-S HA256:DHE-DSS-AES256-SHA256:DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:DHE-RSA-CAMELL IA256-SHA:DHE-DSS-CAMELLIA256-SHA:ECDH-RSA-AES256-GCM-SHA384:ECDH-ECDSA-AES256-G CM-SHA384:ECDH-RSA-AES256-SHA384:ECDH-ECDSA-AES256-SHA384:ECDH-RSA-AES256-SHA:EC DH-ECDSA-AES256-SHA:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:CAMELLIA256-SHA:P SK-AES256-CBC-SHA:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDH E-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-A ES128-SHA:DHE-DSS-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-SHA 256:DHE-DSS-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA:DHE-RSA-SEED-SHA :DHE-DSS-SEED-SHA:DHE-RSA-CAMELLIA128-SHA:DHE-DSS-CAMELLIA128-SHA:ECDH-RSA-AES12 8-GCM-SHA256:ECDH-ECDSA-AES128-GCM-SHA256:ECDH-RSA-AES128-SHA256:ECDH-ECDSA-AES1 28-|
据我所知,我的证书和 RSA 密钥是 2048 位的。如文档所述,当我有 1024 位时不起作用。
当我获得 SSL 连接时,Ssl_version 始终是 TLSv1.2,这是我所期望的。 RHEL7 连接和 RHEL9 连接的 Ssl Cipher 不同 DHE-RSA-AES256-GCM-SHA384 分别为 AES256-GCM-SHA384。
为什么 mariadb 可以工作,而 MySQL 不行?我希望如果我能让 MySQL 工作,那么 PHP 将有更好的工作机会。在 PHP 中使用 PEAR.php、DB.php 和 mysqli_d.php。
错误表明,您的服务器配置的 DH (Diffie-Hellman) 密钥太小,最近的 TLS 库认为它不安全。
MySQL 5.1 使用 512 位 DH 密钥,MySQL 5.7 使用 2048 位密钥:(参见这个commit)
如果您无法升级系统,您可以尝试以下方法:
将 RHEL9 上的“TLS.MinProtocol = TLSv1”添加到 /etc/pki/tls/openssl.cnf,如下所示
修复 MySQL 8.26/8.30 的问题
[加密政策]
.include = /etc/crypto-policies/back-ends/opensslcnf.config
TLS.MinProtocol = TLSv1
这对 PHP 没有帮助,仅指定一个不包含 DH/DHE 密码的密码列表到 mysqli_set_ssl 解决了这个问题。