我正在尝试使用Common Lisp(SBCL)访问https端点以获取一些数据。有一段时间这个操作毫无问题。突然有一天我开始收到以下错误:
我使用了drakma和dexador两种库,但都遇到了同样的错误。通过openssl我确认我尝试连接的服务器不支持重新协商。从
SSL error queue:
error:0A000152:SSL routines::unsafe legacy renegotiation disabled
[Condition of type CL+SSL::SSL-ERROR-SSL]
我使用了drakma和dexador两种库,但都遇到了同样的错误。通过openssl我确认我尝试连接的服务器不支持重新协商。从
openssl s_client -connect
命令可以看出。New, TLSv1/SSLv3, Cipher is AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS NOT supported
我使用的是OSX操作系统,我的 OpenSSL 版本是 LibreSSL 2.8.3。
根据我的理解,我的客户端正在尝试重新协商,但是服务器正在拒绝它。此时我真的不知道该从哪里入手,也不确定问题实际上是在哪个级别,是在 OpenSSL、CL+SSL 还是基于 CL+SSL 的 HTTP 客户端库上。有没有一些方法可以禁用重新协商,或者强制建立新连接?有没有一些设置我漏掉了?
openssl s_client -connect www.google.de:443 -legacy_renegotiation
- Sephiroth