0

版本: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 上失败了。在这种情况下,它只会崩溃并停止工作,而不会发出错误消息。

4

2 回答 2

3

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 握手将失败。握手可能失败的其他原因是站点需要服务器名称指示 (SNI)。虽然 OpenSSL 0.9.8 已经可以支持 SNI,但在 2011 年使用的并不多,因此目前只有少数软件支持它。但是今天 SNI 通常是必不可少的,例如,如果您尝试访问受 Cloudflare Free SSL 保护的网站。

于 2016-10-28T15:44:48.653 回答
0

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

现在,Rebol3 及其分支不是 Rebol2,但如果您查看 prot-tls 的 rebol3 源代码,您会发现支持的密码套件不包括Elliptic Curve Diffie Helmanor ECDHE

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

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

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

于 2017-06-06T08:43:15.783 回答