Я поддерживаю мини-приложение Python, которое использует запросы + HTTPS.
Приложение работало до тех пор, пока IP-адрес имени хоста в URL-адресе HTTPS не изменился (законно). Если я укажу свой браузер на URL-адрес, я могу получить его нормально.
Где Python/requests хранит аналог known_hosts ssh и как его очистить для этого хоста?
$ 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
requests.get(url, timeout=5, config={'danger_mode': True}, verify=False)
, чтобы игнорировать сертификат SSL, как указано в Запрашивает расширенную документацию по использованию. - person   schedule 25.09.2013config
был удален? Я не вижу его на связанной странице, и мой питон утверждает, что он неизвестен. Иverify=False
в одиночку, кажется, не помогает... - person codeling   schedule 27.08.2014Verify
все еще там. Я пропустил второй оператор reqeuests.get в моем скрипте, который также выдал эту ошибку;). Однакоconfig={'danger_mode': True}
больше не требуется - если я правильно прочитал это, теперь это значение по умолчанию. Спасибо за ваш молниеносный ответ! - person codeling   schedule 27.08.2014