版本:REBOL/View 2.7.8.3.1 - jan -2011
我已经运行了一个REBOL脚本,每周获取数据多年。2016年10月21日最后一次验证脚本工作。
截至今天,2016年10月28日,脚本失败,出现以下错误:
**命令错误:SSL错误:Error: 14077410:SSL例程:SSL23_GET_SERVER_HEL . shLO:sslv3 alert handshake failure
有人建议在SSL/TLS握手期间,REBOL只提供当前服务器不再支持的密码。随后,我的脚本试图联系的服务器不愿意使用旧的REBOL密码,因此握手失败。
这样对吗?如果是这样的话,REBOL 2.7.8将在不久之后变得无用,除非打补丁。
顺便说一下,这在飞天座的R3中失败了。在这种情况下,它只是崩溃并停止工作,而不会弹出错误消息。
REBOL/View 2.7.8.3.1 - jan -2011
我对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。但是今天SNI通常是必不可少的,例如,如果您试图访问Cloudflare Free SSL保护的网站。
Rebol2只支持TLS 1.0。如果您在该服务器上运行来自ssllabs的报告,报告将显示TLS 1.0唯一支持的密码套件是TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
。
现在,Rebol3及其分支不是Rebol2,但是如果您查看prot-tls的Rebol3源代码,您将看到支持的密码套件不包括Elliptic Curve Diffie-Hellman Ephemeral
或ECDHE
。
我们同时更新了错误信息,现在它说了一些更有意义的东西
阅读https://www.espacehifi.com/**错误:握手失败-服务器上没有支持的密码套件
直到我们把ECDHE套房变成rebol3。