You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Curl通过FTP连接合作方站点时遇域名解析失败及SSL握手失败问题求助

Curl通过FTP连接合作方站点时遇域名解析失败及SSL握手失败问题求助

先帮你揪出最明显的问题,再一步步排查其他可能:

1. 先修正curl参数的语法错误

你的命令里用了 -cert,但curl的客户端证书参数是双短横线的 --cert!单短横线的 -cert 会被curl解析成多个单字符选项的组合(-c、-e、-r、-t),然后把后面的 domainname.crt 当成要访问的主机名——这就是为什么会出现 Could not resolve host: domainname.crt 错误的核心原因!

先把命令里的 -cert 改成 --cert,这是必须先做的修正:

curl -v -kG --ftp-method nocwd --ftp-ssl --cert "domainname.crt" --key "domainname.key" -u user:password ftp://ftp.partner.biz/

2. 排查SSL握手失败的可能原因

修正参数后,再针对握手失败问题逐一排查:

  • 证书/密钥的路径与格式:确保 domainname.crt 和 domainname.key 的路径正确(如果不在当前执行命令的目录,要写绝对路径,比如 /home/youruser/certs/domainname.crt);另外确认证书是PEM格式,如果是DER格式,需要加上 --cert-type DER 和 --key-type DER 参数。
  • 调整FTP SSL模式:--ftp-ssl 是尝试启用SSL,但有些服务器要求强制SSL,或者只在控制通道启用SSL,可以试试换成 --ftp-ssl-reqd(强制SSL,否则连接失败)或者 --ftp-ssl-control(仅控制通道用SSL)。
  • 强制IPv4连接:你的服务器监听的是tcp6,但合作方的FTP服务器可能不支持IPv6,在curl命令里加 -4 参数强制使用IPv4,看看是否能解决握手问题:
curl -v -4 -kG --ftp-method nocwd --ftp-ssl-reqd --cert "domainname.crt" --key "domainname.key" -u user:password ftp://ftp.partner.biz/
  • 确认客户端证书的有效性:虽然合作方说他们那边没日志,但还是要检查你提供的客户端证书是否是合作方预先授权过的,有没有过期、密钥不匹配的情况。可以用以下命令验证证书和密钥是否匹配:
openssl x509 -in domainname.crt -text -noout
openssl rsa -in domainname.key -text -noout

对比两者的公钥信息是否一致。

3. 额外调试建议

如果还是无法解决,可以用 --trace-ascii 参数保存详细的通信日志,方便进一步定位问题,或者把日志发给合作方帮忙排查:

curl -v -4 -kG --ftp-method nocwd --ftp-ssl-reqd --cert "domainname.crt" --key "domainname.key" -u user:password --trace-ascii debug.log ftp://ftp.partner.biz/

备注:内容来源于stack exchange,提问作者vrao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 10:24:31