1

我知道如何使用 easywebdav 使用 python 连接到我自己的云

我正在使用自签名证书和verify_ssl=False,但这使我容易受到中间人攻击,这是首先使用 ssl 的唯一原因。

我正在使用 Fedora 并尝试将我的服务器证书添加到$HOME/.pki/CA/cacert.pem,但它仍然失败。

4

1 回答 1

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 建立在 requests 之上。并且verify_ssl用作requests.Session.verify Requests 文档说它接受布尔值(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)
...
于 2014-05-20T18:28:30.340 回答