wget 命令 SSL3_CHECK_CERT_AND_ALGORITHM 的问题:dh 密钥太小

And*_*rea 6 ssl solaris wget

我想检查一个 ssl url,但是当我使用命令时:

/usr/sfw/bin/wget --no-check-certificate --secure-protocol=SSLv3 https://url
Run Code Online (Sandbox Code Playgroud)

我得到这个错误:

--2018-10-01 12:11:19--  https://url
Connecting to #:443... connected.
OpenSSL: error:14082174:SSL routines:ssl3_check_cert_and_algorithm:dh key too small
Unable to establish SSL connection.
Run Code Online (Sandbox Code Playgroud)

是否可以跳过此控件?我使用: GNU Wget 1.18 建立在 solaris2.10 上。谢谢

CPB*_*PBL 7

这是 wget 的一个简单解决方法:使用wget --cipher 'DEFAULT:!DH'代替wget.

我暂时将以下内容放入我的 .aliases 中:

alias wget="wget --cipher 'DEFAULT:!DH' "


And*_*nle 1

\n

是否可以跳过此控制?

\n
\n\n

不它不是。(嗯,可以,但是这是不合理的,并且可能会创建不安全的连接。您必须下载 OpenSSL,更改源代码以删除相关的安全检查,然后重新编译您的 SSL 库。然后创建一个适当的环境来使用这些二进制文件。这不是您想要做的事情。必须问这个问题的人不应该修改 OpenSSL 并删除安全检查...)

\n\n

但是,您可以尝试强制wget对 SSL 连接使用不同的密码套件,并且根据服务器的不同,您可能会得到不存在 DH 密钥问题的密码套件。

\n\n

根据GNUwget手册

\n\n
\n

\xe2\x80\x98--安全协议=协议\xe2\x80\x99

\n\n

选择要使用的安全协议。合法值为 \xe2\x80\x98auto\xe2\x80\x99、\n \xe2\x80\x98SSLv2\xe2\x80\x99、\xe2\x80\x98SSLv3\xe2\x80\x99、\xe2\x80\x98TLSv1 \xe2\x80\x99、\xe2\x80\x98TLSv1_1\xe2\x80\x99、\xe2\x80\x98TLSv1_2\xe2\x80\x99 和 \xe2\x80\x98PFS\xe2\x80\x99。如果使用 \xe2\x80\x98auto\xe2\x80\x99\n,则 SSL 库可以自动选择适当的协议,这是通过发送 TLSv1 问候语来实现的。这是默认设置。

\n\n

指定 \xe2\x80\x98SSLv2\xe2\x80\x99、\xe2\x80\x98SSLv3\xe2\x80\x99、\xe2\x80\x98TLSv1\xe2\x80\x99、\xe2\x80\x98TLSv1_1\xe2\x80 \x99 或 \xe2\x80\x98TLSv1_2\xe2\x80\x99 强制\n 使用相应的协议。当与旧的、有缺陷的 SSL 服务器实现进行通信时,这非常有用,这些服务器实现使底层 SSL 库很难选择正确的协议版本。幸运的是,这样的服务器非常罕见。

\n\n

指定 \xe2\x80\x98PFS\xe2\x80\x99 强制使用所谓的完美前向安全密码套件。简而言之,PFS 通过为每个 SSL 连接创建一次性密钥来增加安全性。它对客户端和服务器的 CPU 影响更大一些。我们使用已知的安全密码(例如无 MD4)和 TLS 协议。

\n
\n\n

我建议PFS首先尝试该选项,然后尝试TLSv1_2,然后TLSv1_1,等等,首先选择最安全、最新的选项。其中之一可能有效。

\n\n

如果这些都不起作用,请获取 的副本ssl_cipher_suite_enum.pl,在服务器上运行它,将结果提供给服务器管理员,并告诉他更新过时且不安全的系统。

\n