【问题标题】:How to construct CURL FTPS command in Windows 10 Command Prompt for FTP with TLS如何在带有 TLS 的 FTP 的 Windows 10 命令提示符中构造 CURL FTPS 命令
【发布时间】:2019-06-06 14:31:33
【问题描述】:

我使用的是 Windows 10 专业增强版 我在 DOS 中有一个 CURL 命令,它适用于端口 21 上的标准 FTP 进入文件夹C:\Program Files\cURL\bin> 后,我发出命令:

curl -v -T (C:\folders\file_to_be_transferred.pdf) ftp://(username):(password)@(host.top_level_domain.com)/file_to_be_transferred.pdf

我正在尝试使用 FTP over TLS 传输文件。当我将 FTP 更改为 FTPS 并将命令更改为:

curl -v -T (C:\folders\file_to_be_transferred.pdf) ftps://(username):(password)@(host.top_level_domain.com)/file_to_be_transferred.pdf

我从 CURL 得到以下响应:

* Hostname was NOT found in DNS cache
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0*   Trying 999.999.999.999...
* Connected to host.top_level_domain.com (999.999.999.999) port 21 (#0)
* successfully set certificate verify locations:
*   CAfile: C:\Program Files\cURL\bin\curl-ca-bundle.crt
  CApath: none
* SSLv3, TLS handshake, Client hello (1):
} [data not shown]
* error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
* Closing connection 0
curl: (35) error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol

当我使用 CURL -V 请求 CURL 版本时,我得到以下响应:

curl 7.39.0 (x86_64-pc-win32) libcurl/7.39.0 OpenSSL/1.0.1g zlib/1.2.8 WinIDN libssh2/1.4.3 Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp scp sftp smtp smtps telnet tftp Features: AsynchDNS IDN IPv6 Largefile SSPI SPNEGO NTLM SSL libz

如何在 Windows 10 上通过 CURL 启用 TLS over FTP? 感谢您查看此内容。

【问题讨论】:

    标签: ssl curl windows-10 ftps


    【解决方案1】:

    我解决了这个问题。这就是我引用证书的方式。早些时候,我已将 FileZilla 服务器 (certificate.crt) 生成的证书传输到 Windows 客户端。我将该证书文件放在文件夹 C:\Program Files\cURL\bin 中。此外,我复制了 certificate.crt 的内容并将其附加到名为 curl-ca-bundle.crt 的现有证书中。将新证书附加到该捆绑文件非常重要。那是我的问题。现在,当我在客户端的 CURL 命令中仅引用 FileZilla_Server 生成的证书时,传输工作正常。除了命令行中引用的内容之外,cURL 似乎总是会引用 curl-ca-bundle.crt 文件。日志引用了 SSLv3 握手的详细信息。此外,我对命令进行了一些重组,使其更具可读性。这里是:

    curl --user username:password --cert "C:\Program Files\cURL\bin\certificate.crt" -v -T C:\folder_and_file_to_be_transferred.pdf ftps://host.top_level_domain.com/filename.pdf
    

    顺便说一句,FTPS 的默认端口是 990。在路由器上,我必须打开端口 990 和端口范围 20101-20120。因为我使用的是 ftpS,所以我不必打开端口 21。 我希望这对其他人有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-25
      • 2011-07-08
      相关资源
      最近更新 更多