【问题标题】:openssl 1.0.1 and connecting to Ec2 webapplication on 8443 using curlopenssl 1.0.1 并使用 curl 连接到 8443 上的 Ec2 webapplication
【发布时间】:2012-06-17 10:54:49
【问题描述】:

从具有 openssl 0.9.8k 和 curl 7.19 的机器上,我可以成功地与 8443 上的 EC2 Web 应用程序建立 https 连接。

使用 openssl 1.0.1 和 curl 7.22 的机器上的相同 curl 命令最初会失败,并出现模糊的 SSL23_GET_SERVER_HELLO:tlsv1 警报内部错误。我可以通过在 curl 命令中添加 -sslv3 来解决这个问题,这会导致 401 Unauthorized 错误。

为什么同一命令在不同的 curl/openssl 版本中表现不同?其他可能有用的信息是我在这两种情况下都使用了 -k 选项。

假设这是一个不容易解决的低级 openssl 错误,那么在 ubuntu 上回滚版本的最简单方法是什么?还是只安装我想要的合适的 curl/openssl 软件包会更容易,但是在安装旧 curl 版本的软件包时如何确保它链接到旧 ssl 版本?

【问题讨论】:

    标签: curl https amazon-ec2 openssl


    【解决方案1】:

    几件事:

    既然 curl 和 openssl 是开源包,为什么不直接从源代码编译呢? http://curl.haxx.se/docs/install.html 列出如何指定使用哪个 TLS 库。

    其次,我认为问题实际上出在服务器端。也就是响应ClientHello,服务器返回错误信息。问题不在于较新的客户端,而在于(有问题的)服务器如何响应来自较新客户端的消息(这并不少见——请参阅http://www6.ietf.org/mail-archive/web/tls/current/msg07281.html 并注意 openssl 1.0.1 添加了对 TLS 的支持1.1 和 1.2)。虽然这可以通过将客户端回滚到 SSLv3 来“修复”,但正确的解决方案是修复等式的服务器端。

    这个服务器端运行的是什么软件?你可以升级它吗?

    【讨论】:

    • 服务器正在运行 jboss,所以我可以调查一下。您的回答是否解释了为什么客户端 sslv3 修复(通过 curl 标志)失败?
    • 它没有解释 401 响应。
    【解决方案2】:

    鲁比来救援!虽然我仍然无法通过带有 CURL 的 -sslv3 标志来获得它,但 this post 挽救了这一天。问题是 http.ssl_version 方法不在 ruby​​ 1.8 net/https 中,因此为什么我之前错过了它,我不得不升级到 ruby​​ 1.9.2,但这似乎可以解决问题,curl 仍然失败并出现 401 错误,但现在这不是一个真正的问题,因为 ruby​​ 有效

    【讨论】:

      猜你喜欢
      • 2018-08-16
      • 1970-01-01
      • 2014-03-03
      • 1970-01-01
      • 2018-05-15
      • 2012-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多