Tha*_*son 9 python ssl openssl python-requests lets-encrypt
我现在正在努力让请求库GET使用Let的加密证书对我的网站执行简单的请求.一切都很好的网站,我可以从Chrome访问它就好了.(我现在正在运行OSX El Capitan).
首先,我尝试GET向网站提出请求:
>>> import requests
>>> requests.get('https://example.com')
Run Code Online (Sandbox Code Playgroud)
这给了我:
requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)
Run Code Online (Sandbox Code Playgroud)
然后我尝试了各种各样的东西,包括获取Let的加密权限证书,以下openssl命令成功验证我的站点的证书:
> openssl s_client -CAfile ./letsencryptauthorityx1.pem -connect example.com:443
Run Code Online (Sandbox Code Playgroud)
其输出包括以下内容:
...
SSL-Session:
Protocol : TLSv1
Cipher : DHE-RSA-AES256-SHA
Session-ID: ...
Session-ID-ctx:
Master-Key: ...
Key-Arg : None
Start Time: 1452865123
Timeout : 300 (sec)
Verify return code: 0 (ok)
---
Run Code Online (Sandbox Code Playgroud)
也许我在这里遗漏了一些东西,但它看起来好像我的网站已经根据我提供的Let's Encrypt授权证书进行了验证.所以,我很高兴地将我的Python代码更改为:
>>> requests.get('https://example.com', verify='./letsencryptauthorityx1.pem')
Run Code Online (Sandbox Code Playgroud)
但我仍然不断收到requests.exceptions.SSLError错误.我也尝试使用DER权威证书的格式,但后来我收到以下错误requests:
requests.exceptions.SSLError: unknown error (_ssl.c:2825)
Run Code Online (Sandbox Code Playgroud)
任何人都可以教我如何解决这个问题吗?
| 归档时间: |
|
| 查看次数: |
4336 次 |
| 最近记录: |