【问题标题】:What Could be the Cause of this: ** Command Error: SSL Error: error:14077410:SSL routines:SSL23_GET_SERVER_HEL LO:sslv3 alert handshake failure这可能是什么原因:** 命令错误:SSL 错误:错误:14077410:SSL 例程:SSL23_GET_SERVER_HEL LO:sslv3 警报握手失败
【发布时间】:2016-10-28 15:13:47
【问题描述】:

版本:REBOL/视图 2.7.8.3.1 2011 年 1 月 1 日

多年来,我每周都会运行一个 REBOL 脚本来获取数据。脚本的最后一次验证工作是 2016 年 10 月 21 日。

截至今天,2016 年 10 月 28 日,脚本因以下错误而失败:

** 命令错误:SSL 错误:错误:14077410:SSL 例程:SSL23_GET_SERVER_HEL LO:sslv3 警告握手失败

有人建议在 SSL/TLS 握手期间,REBOL 只提供当前服务器不再支持的密码。随后,我的脚本尝试联系的服务器不愿意使用旧的 REBOL 密码,因此握手失败。

这是对的吗?如果是这样,除非打补丁,否则 REBOL 2.7.8 很快就会变得毫无用处。

顺便说一句,这在 Saphirion 的 R3 上失败了。在这种情况下,它只会崩溃并停止工作,而不会发出错误消息。

【问题讨论】:

  • 很难确定,因为 Rebol 2 是封闭源代码。您是否尝试过 Atronix 或 Ren-C 版本?据我了解,他们使用更新版本的 TLS。如果您必须坚持使用 Rebol 2,您可以通过 CALL wrap curl 委派您的 HTTPS 请求。另外,您是否有一个可以重现错误的 URL?
  • >> read https://www.espacehifi.com/ connecting to: www.espacehifi.com ** Command Error: SSL Error: error:14077438:SSL routines:SSL23_GET_SERVER_HEL LO:tlsv1 alert internal error ** Where: build-port ** Near: system/words/set-modes port/sub-port [secure: true] Windows 10 周年更新的最新补丁可能默认阻止了 SSL 3 支持。
  • 但是 GOOGLE 没问题:>> 阅读 google.com 连接到:www.google.com == {schema.org/WebPage" lan g="zh">
    还有...>> a: https://fred.stlouisfed.org/graph/fredgraph.csv?id=wCURRNS == https://fred.stlouisfed.org/graph/fredgraph.csv?id=wCURRNS >> read a connecting to: fred.stlouisfed.org ** Command Error: SSL Error: error:14077410:SSL routines:SSL23_GET_SERVER_HEL LO:sslv3 alert handshake failure ** Where: build-port ** Near: system/words/set-modes port/sub-port [secure: true]
  • 即使在 Rebol3 上,我们 Atronix 在需要 TLS 1.2 时也会使用 curl。在 Rebol3 的 Atronix 构建中添加 TLS 1.2 支持是我们的路线图。它应该在 2017 年完成。我们很可能会从 OpenBSD 项目中集成 LibreSSL,因为它具有更简洁的 API 和很少的安全漏洞。

标签: ssl rebol rebol3 rebol2


【解决方案1】:

REBOL/视图 2.7.8.3.1 2011 年 1 月 1 日

我对 rebol 了解不多,但根据文档,它可用于各种系统,包括各种类似 UNIX 的系统。这表明用于 SSL/TLS 的底层库是最常用的库,它涵盖了所有支持的系统,即 OpenSSL。

考虑到发布的数据,如果 rebol 版本应该是 OpenSSL 的早期版本 1.0.0 或更可能的版本 0.9.8。这些 OpenSSL 版本都不支持现代服务器通常支持的 TLS 1.2 或 ECDHE 密码,有时不仅支持而且需要。在最后一种情况下,SSL 握手将失败。握手可能失败的其他原因是该站点需要Server Name Indication (SNI)。虽然 OpenSSL 0.9.8 已经可以支持 SNI,但在 2011 年并没有太多使用,因此目前只有少数软件支持它。但如今 SNI 通常是必不可少的,例如,如果您尝试访问受 Cloudflare Free SSL 保护的网站。

【讨论】:

    【解决方案2】:

    Rebol2 仅支持 TLS 1.0。如果您从该服务器上的 ssllabs 运行报告,report says TLS 1.0 唯一支持的密码套件是 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA

    现在,Rebol3 及其分支不是 Rebol2,但如果您查看 prot-tls 的 rebol3 源代码,您会发现 supported cipher suites 不包括 Elliptic Curve Diffie HelmanECDHE

    我们同时更新了错误消息,现在它说的更有意义

    阅读https://www.espacehifi.com/ ** 错误:握手失败 - 服务器上没有可用的受支持密码套件

    直到我们将 ECDHE 套件放入 rebol3。

    【讨论】:

    • 我现在也被这个问题困扰了。我公司的关键站点现在是 TLS 1.2...
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签