如何在python中

时间:2018-05-03 17:00:49

标签: python ssl curl ftp ftps

我正在尝试使用ftps下载文件。我在python中使用ftplib。问题是,在尝试建立连接时,我总是需要手动输入密钥的密码。我该如何实现自动化?

这个curl命令工作正常

curl -k -la --ftp-method nocwd --ftp-ssl -u test_user:test_password --key my_key.key --cert my_cert.crt:cert_password ftp.mysite.com

但是当我尝试使用python时,我必须手动输入“cert_password”

import ftplib
conn = ftplib.FTP_TLS(host='ftp.mysite.come', user='test_user', passwd='test_password', keyfile='my_key.key', certfile='my_cert.crt') 

1 个答案:

答案 0 :(得分:0)

我没有使用 ftplib ,但根据[Python]: class ftplib.FTP_TLS(host='', user='', passwd='', acct='', keyfile=None, certfile=None, context=None, timeout=None, source_address=None)

  

密钥文件 certfile context 的传统替代方案 - 它们可以分别指向PEM格式的私钥和证书链文件用于SSL连接。

查看[Python]: SSL Contexts,您应该分两步进行连接:

import ssl
import ftplib
ctx = ssl.SSLContext()
ctx.load_cert_chain("my_cert.crt", keyfile="my_key.key", password="cert_password")
conn = ftplib.FTP_TLS(host="ftp.mysite.come", user="test_user", passwd="test_password", context=ctx)