SSL证书验证与python请求库失败

时间:2016-06-15 09:11:56

标签: python ssl-certificate python-requests

我们这个本地网站最近刚刚更新了它的证书。我将证书保存在certs.pem文件中,并尝试将其与某些工具连接。以下操作在Ubuntu 14.10框上完成。

当我跑步时:

openssl s_client -connect mylocalsite:8080 -verify 9 -CAfile certs.pem

我得到Verify return code: 0 (ok),然后我跑:

wget https://mylocalsite:8080 --ca-certificate=certs.pem

我明白了:

--2016-06-15 01:53:00-- https://mylocalsite:8080/ Resolving mylocalsite (mylocalsite)... 10.41.13.26 Connecting to mylocalsite (mylocalsite)|10.41.13.26|:8080... connected.

所以证书似乎工作正常,然后我在同一个盒子上使用请求2.10.0和python 3.4.3:

import requests
requests.get('https://mylocalsite:8080', verify='/path/to/certs.pem')

我得到了

requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600)

我对SSL相关的事情完全不熟悉。这可能会出错?

谢谢!

1 个答案:

答案 0 :(得分:1)

看起来openssl s_client -connect对“仅”拥有正确的证书感到满意,但您需要将整个链传递给请求'verify参数(尽管两者都使用相同的库,疗程)。

请求中的SSL支持需要进行一些严重的修改(并且它正在AFAIK上使用)