curl设置代理IP SNI

e0bqpujr  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(414)

使用curl时总是出现539108721984:error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:../ssl/record/rec_layer_s3.c:1399:SSL alert number 40错误
在搜索了一些参考资料后,我找到了答案,第一个问题是因为没有发送服务器名,而是在libcurl doesn't set SNI for IPs中。
在openssl中,我可以为SNI设置参数-servername

openssl s_client -servername example.com -connect 1.2.3.4:443

curl怎么样?,--resolve对我来说确实有效,我试过使用--proxy-insecure也确实有效

curl --resolve example.com:443:1.2.3.4 "telnet://host.com:443" -x https://104.18.25.139:443 --proxy-insecure
mrfwxfqh

mrfwxfqh1#

最后在阅读手册页https://curl.se/docs/manpage.html之后
我可以使用--haproxy-protocol

--haproxy-protocol

(HTTP) Send a HAProxy PROXY protocol v1 header at the beginning of the connection. This is used by some load balancers and reverse proxies to indicate the client's true IP address and port.

This option is primarily useful when sending test requests to a service that expects this header.

Example:

 curl --haproxy-protocol https://example.com
See also -x, --proxy. Added in 7.60.0.

在这里我可以解决我的问题。
检查您的cURL版本

root@localhost:~/# curl -V
curl 7.58.0 (aarch64-unknown-linux-gnu) libcurl/7.58.0 OpenSSL/1.1.0g zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1 (+libidn2/2.0.4) nghttp2/1.30.0 librtmp/2.3
Release-Date: 2018-01-24

我的 curl 度低于7.60.0,所以我需要更新它。
我尝试使用sudo apt update curl,但仍然过时。
所以我从官方网站安装最新的curl。
您可以选中此项以安装最新cURL
https://gist.github.com/lexavey/bc93b7d18062f063462b68d2f2126c7a

  • 谢谢-谢谢

相关问题