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

2023-12-12

我正在通过 SSL 连接到我的数据库 Google Cloud SQL。我使用 codeigniter 3.0 来执行此操作,尽管 mysqli 驱动程序进行了一些修改以允许此功能。

几个月来一直运作良好。然而它just开始返回此警告:

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。

The SSL3_CHECK_CERT_AND_ALGORITHM通常在启用出口级密码时出现。由于僵局,它可能会再次出现在非出口等级谈判中(见下文)。


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

这是由于最近僵局攻击从纸上不完美的前向保密:Diffie-Hellman 在实践中如何失败.

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

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

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

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


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

我只能说“通常会感到沮丧”因为这取决于受保护的数据。如果您有 SSL/TLS 来保护公开文件的下载,那么可能可以使用。如果您的网站有登录信息,那么使用它可能有点冒险,因为密码是秘密数据(与公开可下载的文件不同)。

为了避免钥匙运输并通过那些Qualys SSL 实验室测试 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,它测试很多东西。这也可能成为一个很好的质量检查工具。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SSL 操作失败,代码 1:dh 密钥太小 的相关文章

随机推荐

  • 登录尝试 5 次失败后阻止用户 IP?

    伙计们 我在 ASP net C 中有一个简单的客户登录页面 其中有 2 个文本框和一个按钮 一个用于用户名 另一个用于密码和提交按钮 按提交后 密码文本框文本将被加密 然后与已存储在数据库中的密码加密值进行比较 现在我想要做的是 在每次登
  • 本地主机上应用程序引擎 std 的 devappserver.py 正在清除 os.uname 并在 ctypes 中崩溃

    我愚蠢地重新安装了所有 Python 2 7 依赖项 但它损坏了某些东西 如果您注意到第 1 行 os uname 有一个有效值 但当 GAE 调用 ctypes 模块 第 3 行 时 它已被清空 我的本地服务器将无法响应客户端 这感觉有点
  • 为 Web API 1、.net 4.0 启用 CORS 时出现的问题

    我需要为我的 Web API 启用 CORS 但无法升级到 Framework 4 5 我尝试将以下内容添加到我的 Web config 中以查看它是否有效 但没有成功
  • 禁用所选文本的拖放

    当我使用 chrome 时 输入或文本框中的任何选定文本都可以拖放到另一个输入 文本区域中 有什么办法可以禁用所选文本的拖动吗 document getElementById test addEventListener dragstart
  • 如何为图像的映射部分分配唯一的 ID 并将其与数据库链接[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我创建了建筑物平面图的图像
  • 如何关闭 FBWebDialogs

    如何以编程方式关闭 FBWebDialogs 我已经看过所有文档和堆栈溢出问题 但似乎没有办法做到这一点 这不可能吧 所以我找到了一种 hacky 方法来做到这一点 此代码将以编程方式触发关闭按钮 TouchUpInside 从而关闭对话框
  • 在Python中读取Fortran的默认输出[重复]

    这个问题在这里已经有答案了 我有 Fortran 77 中旧代码的输出 输出是用 write NUM 线 基本上 默认格式 以下是部分输出 1 25107598E 67 1 89781536E 61 1 28064971E 94 5 857
  • 如何使用.NET core 3.1为任何请求的HTTP客户端设置默认代理?

    我正在使用 interfax api dll 向用户发送传真 如何添加代理服务器配置以将传真发送给用户 实际上我想在 net core 中启用代理服务器设置 最好的方法是什么 问题似乎不在于 interfax api 这可以通过向 net
  • 无法在 mac 上导入 gi 模块 python 3.6

    我正在使用 python 3 6 在 mac 上集成 gstreamer 和 pocketsphinx 然而 第一行代码 从 gi 导入 pygtkcompat 引发错误 命令 python3 demoapp chinese py retu
  • 设计类别、子类别和相关书籍的数据库

    我知道对于与我所问的问题类似的几个问题已经有了一些答案 但他们的方法看起来并不令人信服 我的问题是如何为可以包含书籍的类别和也可以包含书籍的子类别构建数据库 我已经设计了一个数据库 但不相信这种方法 因此 如果有经验的人给我一些建议或改进或
  • 如何在 iPhone 上更长时间地显示启动画面?

    如何在 iPhone 上显示比默认时间更长的启动屏幕 阅读 Apple iPhone 人机界面指南 HIG 启动画面 不应该用于品牌推广或显示徽标 它应该看起来像应用程序的默认状态 因此它看起来可以快速启动 让它在那里停留更长时间将违反 H
  • 从 C 中的 char 数组获取数字值

    我有这个字符数组 char movimiento L30 G10 L50 G 45 L 10 G50 我想获取字母后面的数字的值 L 并将它们存储到整数变量中以供以后使用 eg 30 50 10 我尝试过这样做 因为 ASCII 代码数字从
  • CSS 边距计算

    虽然我在理论上确实了解整个 CSS 盒子模型 如填充 边框 边距 但我的理解仅限于这些单独的部分 我经常对浏览器实际上如何呈现它感到困惑 例如 就像padding是在边框之内一样 但是margin是如何计算的呢 是相对于盒子边框还是相对于屏
  • 如何使用 NativeActivity 写入内部存储文件系统?

    我正在将纯 C 游戏移植到 Android 由于我的目标是 Android 3 0 平板电脑 因此我选择使用 NativeActivity 以完全避免使用 Java 但是 我看不到任何允许我写入设备内部存储的功能 对 fopen 的调用将失
  • JAXB 列出根元素中的名称空间(-> 每个元素)

    默认情况下 jaxb 2 在编组期间列出根元素中的所有 所有可能需要的 命名空间 有没有办法在每个元素而不是根元素中描述名称空间 它还解决了 不必要的名称空间 的问题 这对我来说也很重要 任何建议表示赞赏 None
  • 如何通过PHP抓取需要POST数据的网站?

    我正在尝试抓取一个接受 POST 数据的网站以返回正确的页面 无 POST 则返回 15 个结果 有 POST 数据则返回所有结果 目前我的代码如下所示 curl curl init curl setopt curl CURLOPT URL
  • java.lang.IllegalStateException:无法在父级或祖先上下文中找到 android:onClick 属性的方法

    我正在尝试添加 onClick 方法front 到我的按钮 但是 当我单击按钮时 它返回此错误 java lang IllegalStateException Could not find method front View in a pa
  • 如何将应用程序片段设置为仅纵向模式?

    我有一个 Android 应用程序 它有一个主要活动和 3 个选项卡片段 我希望应用程序始终保持纵向模式 但我似乎无法正常工作 这是我尝试过的 根据另一篇堆栈溢出帖子 但我不确定我做错了什么 如果使用片段 它是否需要有所不同
  • IntelliJ IDEA:如何将项目库与pom.xml中的依赖项同步?

    当我更改项目 具有多个模块 的 pom xml 之一中的依赖项版本时 我会在项目结构的 库 部分中看到新版本和旧版本 例如 最近我将Drools从5 4版本更改为5 5版本 当我进入 库 部分时 我看到了这两个库 因此我手动删除了 5 4
  • SSL 操作失败,代码 1:dh 密钥太小

    我正在通过 SSL 连接到我的数据库 Google Cloud SQL 我使用 codeigniter 3 0 来执行此操作 尽管 mysqli 驱动程序进行了一些修改以允许此功能 几个月来一直运作良好 然而它just开始返回此警告 Mes