当前位置: 首页 > 面试题库 >

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

冀啸
2023-03-14
问题内容

我正在通过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 Key is too small是主要问题,但我不知道那是什么意思。我已经搜索了Diffie-
Hellman密钥交换以及“密钥太小”消息,但是运气不高。

这是否表明服务器上的密钥已被篡改?我检查了它们的上次修改日期-最近没有异常访问。

可能是我的服务器进行了一些升级到PHP或它们的服务器配置,这可能会导致此中断,但是我想检查并确保它不是其他内容。

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


问题答案:
... error:14082174:SSL routines:SSL3_CHECK_CERT_AND_ALGORITHM:dh key too

small

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

SSL3_CHECK_CERT_AND_ALGORITHM使出口级密码时,通常出现。由于Logjam,它可能会再次出现在非出口级谈判中(见下文)。

我以为DH Key太小是主要问题,但是我不知道这意味着什么。我已经搜索了Diffie-Hellman密钥交换以及“密钥太小”消息,但是运气不高。

这是由于《不完美的前向机密:Diffie-Hellman如何在实践中失败》一文中最近的Logjam攻击所致。

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

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

"HIGH:!aNULL:!MD5:!RC4"

它将避免使用出口级密码,并使用现代密码。但是,您还需要确保DH回调不使用弱/小字段大小。为此,您需要检查服务器配置。

有些人正在用“解决”这个问题kRSAkRSA是关键的 传输 方案,而不是关键的 协议
方案。RSA密钥传输方案不提供前向保密性,通常不鼓励使用它。实际上,它将从TLS 1.3中删除。

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

为避免密钥传输并通过那些Qualsys SSL Labs测试的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在论文发表前一段时间曾拒绝过小团体。这可能是您网站的一个很好的测试案例。

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



 类似资料:
  • 我想用“我是个白痴”作为这个问题的开头,但我真的需要一些帮助。 我有一个由GoDaddy托管的PHP站点。在过去的几年里,我一直使用file_get_contents()将一个简单的XML页面读入我站点的mySQL数据库。今年一月,我开始收到以下警告。 警告:file_get_contents()[function.file-get-contents]:SSL操作失败,代码为1。OpenSSL错误

  • 问题内容: 我一直试图从我在服务器上创建的PHP页面访问此特定的REST服务。我将问题缩小到这两行。所以我的PHP页面看起来像这样: 该页面死于第2行,并出现以下错误: * 警告:file_get_contents():SSL操作失败,代码为1。OpenSSL错误消息:error:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:证书验证在第2行的… php中失

  • null 我们用的是Gentoo服务器。我们最近升级到PHP版本5.6。这个问题是在升级之后出现的。 在前面的尝试中,我设置,并将其作为参数传递给file_get_contents,如下所述:file_get_contents忽略verify_peer=>false?但就像作者指出的那样;没什么区别。 我询问了一位服务器管理员,我们的php.ini文件中是否存在以下行: extension=php

  • 我已经安装了WAMP3.0.4,并试图编写一个连接到外部HTTPS web服务的PHP脚本。但这将返回错误: 从上面可以清楚地看出,我是Apache/WAMP的新手。也许有人能解释一下我错过了什么吗?

  • 我正在使用8.5.0运行时服务器运行我的项目,在部署期间,我发现以下错误 这里是配置。引用密钥存储的xml文件。资源目录中的jks文件