Tôi đang duy trì một ứng dụng nhỏ Python sử dụng các yêu cầu + HTTPS.Yêu cầu Python "chứng chỉ xác minh không thành công"
Ứng dụng hoạt động cho đến khi địa chỉ IP của tên máy chủ trong URL HTTPS thay đổi (hợp pháp). Nếu tôi trỏ trình duyệt của mình đến URL, tôi có thể truy xuất nó.
Trường hợp nào Python/yêu cầu giữ tương tự với known_hosts của ssh và làm thế nào để xóa nó cho máy chủ lưu trữ này?
$ python --version
Python 2.7.3
$ cat foo.py
import requests
url = "https://somehost/resource.json"
requests.get(url, timeout=5, config={'danger_mode': True})
$ source venv/bin/activate
$ python foo.py
Traceback (most recent call last):
File "foo.py", line 3, in <module>
requests.get(url, timeout=5, config={'danger_mode': True})
File "/home/dfukdev/corsair-scripts/alfred/venv/local/lib/python2.7/site-packages/requests/api.py", line 65, in get
return request('get', url, **kwargs)
File "/home/dfukdev/corsair-scripts/alfred/venv/local/lib/python2.7/site-packages/requests/safe_mode.py", line 39, in wrapped
return function(method, url, **kwargs)
File "/home/dfukdev/corsair-scripts/alfred/venv/local/lib/python2.7/site-packages/requests/api.py", line 51, in request
return session.request(method=method, url=url, **kwargs)
File "/home/dfukdev/corsair-scripts/alfred/venv/local/lib/python2.7/site-packages/requests/sessions.py", line 241, in request
r.send(prefetch=prefetch)
File "/home/dfukdev/corsair-scripts/alfred/venv/local/lib/python2.7/site-packages/requests/models.py", line 641, in send
raise SSLError(e)
requests.exceptions.SSLError: [Errno 1] _ssl.c:504: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
Tôi không chắc chắn lý do tại sao chứng chỉ không hợp lệ, nhưng như một giải pháp thay thế bạn có thể sử dụng 'requests.get (url, timeout = 5, config = {'danger_mode': True}, verify = False)' bỏ qua chứng chỉ SSL như được đề cập trong [Tài liệu sử dụng nâng cao yêu cầu] (http://www.python-requests.org/en/latest/user/advanced/). –
@ AndréDaniel có 'cấu hình' đã bị xóa? Tôi không nhìn thấy nó trên trang liên kết và trăn của tôi tuyên bố nó là không rõ. Và 'verify = False' một mình dường như không làm các trick ... – codeling
@RandolphCarter Tôi chỉ cần nhìn vào trang và nó vẫn còn đó, tìm kiếm" SSL Cert "(Tôi rất muốn cung cấp cho bạn một liên kết trực tiếp nhưng Tôi đang ở trên điện thoại của mình và không thể thực sự làm như vậy) ... –