Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SSL操作失败,代码为1:dh密钥太小_Php_Codeigniter_Ssl_Mysqli_Openssl - Fatal编程技术网

Php SSL操作失败,代码为1:dh密钥太小

Php SSL操作失败,代码为1:dh密钥太小,php,codeigniter,ssl,mysqli,openssl,Php,Codeigniter,Ssl,Mysqli,Openssl,我正在通过SSL连接到我的数据库Google Cloud SQL。我使用codeigniter 3.0来实现这一点,尽管mysqli驱动程序经过了一些修改,允许使用此功能 好几个月来一直运作良好。但是,它刚刚开始返回此警告: Message: mysqli::real_connect(): SSL operation failed with code 1. OpenSSL Error messages: error:14082174:SSL routines:SSL3_CHECK_CERT_AN

我正在通过SSL连接到我的数据库Google Cloud SQL。我使用codeigniter 3.0来实现这一点,尽管mysqli驱动程序经过了一些修改,允许使用此功能

好几个月来一直运作良好。但是,它刚刚开始返回此警告:

Message: mysqli::real_connect(): SSL operation failed with code 1. OpenSSL Error messages: error:14082174:SSL routines:SSL3_CHECK_CERT_AND_ALGORITHM:dh key too small
我假设DH键太小是主要问题,但我不知道这意味着什么。我在谷歌上搜索了Diffie–Hellman密钥交换,以及“密钥太小”的消息,但我运气不太好

这是否表示服务器上的密钥已被篡改?我已经检查了最近修改的日期——最近没有异常访问

可能是我的服务器升级到了PHP或他们的服务器配置,这可能会导致这种破坏,但我想检查并确保它不是其他东西

感谢您提供有关该主题的任何见解/可读材料

您感兴趣的错误号是OpenSSL错误0x14082174

启用导出级密码时,通常会看到
SSL3\u检查\u证书和\u算法。由于僵局,它可能会再次出现在非出口级谈判中(见下文)


我假设DH键太小是主要问题,但我不知道这意味着什么。我在谷歌上搜索了Diffie–Hellman密钥交换,以及“密钥太小”的消息,但我运气不太好

那是因为报纸最近的报道

您应该使用2048位Diffie-Hellman组或更大的组。您不应该使用512位或1024位Diffie-Hellman组

首先要检查密码列表字符串。它应该类似于:

"HIGH:!aNULL:!MD5:!RC4"
它将避免出口级密码,并使用现代密码。但您还需要确保DH回调没有使用弱/小字段大小。为此,您需要检查服务器配置


一些人正在用
kRSA
来“解决”这个问题
kRSA
是一个密钥传输方案,而不是密钥协议方案。RSA密钥传输方案不提供前向保密性,通常不鼓励使用它。事实上,它将从TLS1.3中删除

我只能说“通常不鼓励”,因为这取决于所保护的数据。如果您有SSL/TLS来保护公共可用文件的下载,那么使用它可能是可以的。如果您的网站有登录名,那么使用它可能有点风险,因为密码是机密数据(与可公开下载的文件不同)

要避免密钥传输并通过web服务器配置和转发保密性测试,请使用:

"HIGH:!aNULL:!kRSA:!MD5:!RC4"
在Apache配置文件中,它如下所示:

# cat /etc/httpd/conf.d/ssl.conf | grep SSLCipherSuite
# SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLCipherSuite HIGH:!aNULL:!kRSA:!MD5:!RC4

我似乎记得,在论文发表之前的一段时间,wget拒绝了小团体。它可能是您站点的一个很好的测试用例


还有一个改进的,可以测试很多东西。这可能也是一个很好的QA工具。

尝试更改httpd.conf文件中的SSLCipherSuite
# cat /etc/httpd/conf.d/ssl.conf | grep SSLCipherSuite
# SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLCipherSuite HIGH:!aNULL:!kRSA:!MD5:!RC4