我知道how to connect to my owncloud with python, by using easywebdav。
我使用自签名证书和verify_ssl=False
,但这使我容易受到中间人攻击,这是首先使用ssl的唯一原因。
我使用Fedora并尝试将我的服务器证书添加到$HOME/.pki/CA/cacert.pem
,但它仍然失败。
答案 0 :(得分:3)
您已在$HOME/.pki/CA/cacert.pem
中拥有服务器证书。但是为了完成其他人,你可以获得这样的python证书:
import ssl
import os
# get the https certificate
cert = ssl.get_server_certificate(('example.com', 443))
# append it to my personal chain
pem_path = os.path.expanduser('~/.pki/CA/cacert.pem')
with open(pem_path, 'a+') as f:
f.write(cert)
然后在easywebdav中使用它。 Easywebdav builds on requests。 verify_ssl
用作requests.Session.verify
Requests docs say它接受布尔(True使用默认链)或路径到CA_BUNDLE
所以这应该有效:
import easywebdav
pem_path = os.path.expanduser('~/.pki/CA/cacert.pem')
webdav = easywebdav.connect('example.com', username='user', password='pass',
protocol='https', port=443,
verify_ssl=pem_path)
...