InsecurePlatformWarning: истинный объект SSLContext недоступен. Это предотвращает надлежащую настройку SSL-протокола urllib3
Пытался выполнить REST GET через запросы python со следующим кодом, и я получил ошибку.
Код snip:
import requests
header = {'Authorization': 'Bearer...'}
url = az_base_url + az_subscription_id + '/resourcegroups/Default-Networking/resources?' + az_api_version
r = requests.get(url, headers=header)
Ошибка:
/usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/util/ssl_.py:79:
InsecurePlatformWarning: A true SSLContext object is not available.
This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail.
For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
Моя версия python - 2.7.3. Я попытался установить urllib3 и запросил [security], как предлагает какой-то другой поток, я все равно получил ту же ошибку.
Интересно, может ли кто-нибудь дать некоторые советы?
Ответы
Ответ 1
Документы дают справедливый индикатор того, что требуется., однако requests
позволяет пропустить несколько шагов:
Вам нужно установить только security
дополнительные услуги (спасибо @admdrew за указание)
$ pip install requests[security]
или, установите их напрямую:
$ pip install pyopenssl ndg-httpsclient pyasn1
Затем запросы автоматически вставляют pyopenssl
в urllib3
Если вы на ubuntu, вы можете столкнуться с проблемой установки pyopenssl
, вам понадобятся эти зависимости:
$ apt-get install libffi-dev libssl-dev
Ответ 2
Если вы не можете обновить свою версию Python до версии 2.7.9 и хотите подавить предупреждения,
вы можете понизить версию ваших запросов до версии 2.5.3:
pip install requests==2.5.3
О версии:
http://fossies.org/diffs/requests/2.5.3_vs_2.6.0/requests/packages/urllib3/util/ssl_.py-diff.html