CURL - 通过 TLS 显式连接 FTP
CURL - Connect explicit FTP over TLS
我正在尝试通过 TLS 使用显式 FTP 加密连接到 FTP 服务器。
curl_setopt($ch, CURLOPT_URL, 'ftp.mydomain.com/orders'.$filename);
curl_setopt($ch, CURLOPT_USERPWD, 'uname:pwd');
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_PORT, 21);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($localfile));
curl_exec ($ch);
$error_no = curl_errno($ch);
我必须将文件上传到此位置,但在连接到服务器时,它给出错误编号 56(响应读取失败)。
我不确定我是否使用正确的选项通过 TLS 显式连接 FTP。
不仅你没有启用TLS/SSL。您甚至没有指定要使用的协议。并且 CURL 默认为 HTTP。所以你的代码失败了,因为 CURL 试图通过 HTTP 与 FTP 服务器通信。
到selectFTP并强制TLS/SSL:
curl_setopt($ch, CURLOPT_PROTOCOLS, CURLPROTO_FTP);
curl_setopt($ch, CURLOPT_FTP_SSL, CURLFTPSSL_ALL);
尝试使用以下代码 -
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_FTP_SSL, CURLFTPSSL_TRY);
curl_setopt($ch, CURLOPT_FTPSSLAUTH, CURLFTPAUTH_TLS);
我正在尝试通过 TLS 使用显式 FTP 加密连接到 FTP 服务器。
curl_setopt($ch, CURLOPT_URL, 'ftp.mydomain.com/orders'.$filename);
curl_setopt($ch, CURLOPT_USERPWD, 'uname:pwd');
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_PORT, 21);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($localfile));
curl_exec ($ch);
$error_no = curl_errno($ch);
我必须将文件上传到此位置,但在连接到服务器时,它给出错误编号 56(响应读取失败)。 我不确定我是否使用正确的选项通过 TLS 显式连接 FTP。
不仅你没有启用TLS/SSL。您甚至没有指定要使用的协议。并且 CURL 默认为 HTTP。所以你的代码失败了,因为 CURL 试图通过 HTTP 与 FTP 服务器通信。
到selectFTP并强制TLS/SSL:
curl_setopt($ch, CURLOPT_PROTOCOLS, CURLPROTO_FTP);
curl_setopt($ch, CURLOPT_FTP_SSL, CURLFTPSSL_ALL);
尝试使用以下代码 -
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_FTP_SSL, CURLFTPSSL_TRY);
curl_setopt($ch, CURLOPT_FTPSSLAUTH, CURLFTPAUTH_TLS);