【问题标题】:IO::Socket::SSL: SSL connect attempt failedIO::Socket::SSL:SSL 连接尝试失败
【发布时间】:2020-12-21 14:59:39
【问题描述】:

我确实请求https://bank.gov.ua

my $ua       =  Mojo::UserAgent->new;
$ua->get("https://bank.gov.ua/NBUStatService/v1/statdirectory/exchange?valcode=EUR&date=$date_now&json");

并得到错误:

DEBUG: .../IO/Socket/SSL.pm:3010: new ctx 146452496
DEBUG: .../IO/Socket/SSL.pm:1638: don't start handshake: IO::Socket::SSL=GLOB(0xc955978)
DEBUG: .../IO/Socket/SSL.pm:787: ssl handshake not started
DEBUG: .../IO/Socket/SSL.pm:829: using SNI with hostname bank.gov.ua
DEBUG: .../IO/Socket/SSL.pm:864: request OCSP stapling
DEBUG: .../IO/Socket/SSL.pm:894: call Net::SSLeay::connect
DEBUG: .../IO/Socket/SSL.pm:897: done Net::SSLeay::connect -> -1
DEBUG: .../IO/Socket/SSL.pm:907: ssl handshake in progress
DEBUG: .../IO/Socket/SSL.pm:894: call Net::SSLeay::connect
DEBUG: .../IO/Socket/SSL.pm:897: done Net::SSLeay::connect -> -1
DEBUG: .../IO/Socket/SSL.pm:900: local error: SSL connect attempt failed
DEBUG: .../IO/Socket/SSL.pm:903: fatal SSL error: SSL connect attempt failed
DEBUG: .../IO/Socket/SSL.pm:3059: free ctx 146452496 open=
DEBUG: .../IO/Socket/SSL.pm:3063: free ctx 146452496 callback
DEBUG: .../IO/Socket/SSL.pm:3070: OK free ctx 146452496

我可以从该主机向curl 提出请求,以毫无问题地提供网址。

有谁知道当我通过 IO::Socket::SSL (Mojo::UserAgent) 执行此操作时会出现什么问题?

【问题讨论】:

  • 最初对我不起作用,因为服务器似乎对 TLS 1.3 请求发出了嘶哑的声音。现在对我有用,也许服务器修好了?
  • @SteffenUllrich:你的意思是:在 TLS 1.3 上发牢骚?

标签: perl ssl mojolicious sslhandshakeexception


【解决方案1】:

这个服务器很奇怪:

  • 第一个带有openssl s_client -connect bank.gov.ua:443 的请求失败,服务器只是关闭了连接:“SSL 握手已读取 0 字节并写入 303 字节”
  • Mojo::UserAgent 代码也失败了
  • 使用显式 TLS 1.2 执行请求成功:openssl s_client -connect bank.gov.ua:443 -tls1_2
  • 再次尝试第一个请求也突然成功了
  • Mojo::UserAgent 代码现在也成功了

我唯一的解释是某些防火墙或负载平衡器会暂时将 IP 地址列入白名单,以防它看到有效的 TLS ClientHello - 并且认为 TLS 1.3 不是有效的。

【讨论】:

    猜你喜欢
    • 2020-09-14
    • 2023-04-05
    • 2022-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-26
    • 1970-01-01
    相关资源
    最近更新 更多