curl (35)OpenSSL安全套接字连接:在连接和javax.net.ssl.SSL中出现SSL_ERROR_SYSCALL握手异常:远程主机终止了握手

nc1teljy  于 2022-11-13  发布在  Java
关注(0)|答案(1)|浏览(208)

如果使用curl命令将文件上载到外部api,

curl -iv  --cacert xxx.pem -u xx:xx -F "dataF=@/xx.csv" -F "confId=test" -x "http://xx.xx.xx.xxx:443" "https://xxxxx.com/testupload/"

在curl中获取以下错误

*   Trying xx.xxx.x.xx...
  • TCP_节点延迟设置
  • 已连接到xx.xxx.x.xx(xx.xxx.x.xx)端口443(#0)
  • 分配连接缓冲区!
  • 建立到www.example.com的HTTP代理服务器通道test.com:443
  • 使用Basic对用户“testuser”进行服务器身份验证

HTTP/1.1连接测试网站:443 test.com:443用户代理:curl/7.61.1代理连接:保持活动
〈HTTP/1.1 200已建立连接HTTP/1.1 200已建立连接〈代理-代理:Zscaler/6.1代理代理:Z定标器/6.1〈

  • 代理对CONNECT请求的响应为200
  • 连接阶段已完成!
  • ALPN,提供h2
  • ALPN,提供http/1.1
  • 成功设置证书验证器位置:
  • CA文件:xx.pem CA路径:无
  • TLSv1.2(OUT)、TLS握手、客户端问候语(1):
  • OpenSSL SSL连接(_C):SSL_ERROR_SYSCALL连接到test.com:443
  • 关闭连接0 curl:(35)OpenSSL SSL连接:SSL_ERROR_SYSCALL连接到test.com:443
    在RHEL 8升级之前也是如此

我还尝试使用java httpclient进行连接,但最终遇到了同样的问题。

javax.net.ssl.SSLHandshakeException: Remote host terminated the handshake
    at sun.security.ssl.SSLSocketImpl.handleEOF(SSLSocketImpl.java:1570)
    at sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1400)
    at sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1300 ...
Caused by: java.io.EOFException: SSL peer shut down incorrectly
    at sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:167)
    at sun.security.ssl.SSLTransport.decode(SSLTransport.java:109)
    at sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1392)

无法找出根本原因,任何指示都将非常有帮助。
先谢谢你

z18hc3ub

z18hc3ub1#

问题出在防火墙上,防火墙基本上阻止了传出连接。
发布IP白名单后,问题得到解决,我们能够连接到服务器。

相关问题