【问题标题】:CL+SSL SSL Error: Unsafe legacy renegotiation disabled. How to bypass or resolve?CL+SSL SSL 错误:不安全的旧版重新协商已禁用。如何绕过或解决?
【发布时间】:2021-12-23 00:09:21
【问题描述】:

我正在尝试访问 https 端点以使用 common-lisp(sbcl) 拉回一些数据。有一段时间,这没有问题。然后有一天我开始收到以下错误

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 上,我的开放 ssl 版本是 LibreSSL 2.8.3。

据我了解,我的客户正在尝试重新协商,但服务器拒绝了它。我真的不知道从哪里开始,在这一点上,我什至不确定问题到底在哪个级别,openSSL、CL+SSL 或构建在 CL+SSL 之上的 http 客户端库。有什么方法可以禁用重新协商或强制建立新连接?有没有我遗漏的设置?

【问题讨论】:

  • 有没有运气解决这个问题...?

标签: ssl openssl common-lisp sbcl drakma


【解决方案1】:

在 Openssl 1.1.1 中,SSL_OP_LEGACY_SERVER_CONNECT 标志默认开启,但是 从 Openssl 3.0.0 开始默认关闭。

查看下面的文章

SSL_CTX_set_options(ssl_ctx, SSL_OP_LEGACY_SERVER_CONNECT);

https://www.openssl.org/docs/man3.0/man3/SSL_clear_options.html

【讨论】:

    猜你喜欢
    • 2022-11-09
    • 1970-01-01
    • 2018-07-25
    • 1970-01-01
    • 1970-01-01
    • 2011-09-16
    • 2015-10-21
    • 2019-03-11
    • 1970-01-01
    相关资源
    最近更新 更多