Błąd SSL InsecurePlatform podczas korzystania z pakietu żądań
Używam Pythona 2.7.3 i zapytań. Zainstalowałem żądania przez pip. Myślę, że to najnowsza wersja. Działam na Debianie Wheezy.
Używałem żądań wiele razy w przeszłości i nigdy nie spotkałem się z tym problemem, ale wydaje się, że podczas tworzenia żądań https z Requests
dostaję wyjątek InsecurePlatform
.
Błąd wspomina urllib3
, ale nie mam tego zainstalowanego. Zainstalowałem go, aby sprawdzić, czy rozwiązał błąd, ale nie.
/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.
Jakieś pomysły, dlaczego to dostaję? Sprawdziłem dokumenty, jak określono w komunikacie o błędzie, ale dokumenty mówią, aby zaimportować urllib3 i albo wyłączyć ostrzeżenie, albo dostarczyć certyfikat. 14 answers
Użyj nieco ukrytej funkcji bezpieczeństwa:
pip install 'requests[security]'
lub
pip install pyOpenSSL ndg-httpsclient pyasn1
Oba polecenia instalują następujące dodatkowe pakiety:
- pyOpenSSL
- kryptografia
- idna
Należy pamiętać, że nie jest to wymagane dla python-2.7.9 + .
Jeśli pip install
nie wystąpią błędy, sprawdź, czy masz wymagane pakiety deweloperskie dla libffi
, libssl
i python
zainstalowany w Twoim systemie przy użyciu pakietu dystrybucji manager :
Debian/Ubuntu -
python-dev
libffi-dev
libssl-dev
paczki.Fedora -
openssl-devel
python-devel
libffi-devel
paczki.
Powyższa lista dystrybucji jest niekompletna.
Obejście (zobacz oryginalną odpowiedź użytkownika TomDotTom):
W przypadku, gdy nie można zainstalować niektórych wymaganych pakietów deweloperskich, istnieje również opcja wyłączenia tego Ostrzeżenie:
import requests.packages.urllib3
requests.packages.urllib3.disable_warnings()
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:55:00
Requests 2.6 wprowadziło to Ostrzeżenie dla Użytkowników Pythona przed 2.7.9 z dostępnymi tylko zapasowymi modułami SSL.
Zakładając, że nie możesz uaktualnić Pythona do nowszej wersji, zainstaluje to bardziej aktualne biblioteki SSL Pythona:
pip install --upgrade ndg-httpsclient
Jednak może się to nie udać w niektórych systemach bez zależności kompilacji dla pyOpenSSL. W systemach Debiana, uruchomienie tego przed powyższym poleceniem pip powinno wystarczyć do zbudowania pyOpenSSL:
apt-get install python-dev libffi-dev libssl-dev
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-07 21:44:18
Nie używam tego w produkcji, tylko testowych biegaczy. I powtórzyć dokumentację urllib3
Jeśli wiesz co robisz i chciałbyś wyłączyć to i inne ostrzeżenia
import requests.packages.urllib3
requests.packages.urllib3.disable_warnings()
Edycja / Aktualizacja:
Powinno działać również:
import logging
import requests
# turn down requests log verbosity
logging.getLogger('requests').setLevel(logging.CRITICAL)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-29 12:35:51
Jeśli nie możesz uaktualnić swojej wersji Pythona do wersji 2.7.9 i chcesz wyłączyć ostrzeżenia,
Możesz obniżyć wersję "requests" do wersji 2.5.3:
sudo pip install requests==2.5.3
O wersji: http://fossies.org/diffs/requests/2.5.3_vs_2.6.0/requests/packages/urllib3/util/ssl_.py-diff.html
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-05-20 21:01:34
Możesz spróbować tego.
requests.post("https://www.google.com", verify=False)
Możesz odczytać kod dla żądań.
"C:\Python27\Lib\site-packages\requests\sessions.py"
class Session(SessionRedirectMixin):
......
def request(self, method, url,
params=None,
data=None,
headers=None,
cookies=None,
files=None,
auth=None,
timeout=None,
allow_redirects=True,
proxies=None,
hooks=None,
stream=None,
verify=None, # <========
cert=None):
"""
...
:param verify: (optional) if True, the SSL cert will be verified.
A CA_BUNDLE path can also be provided.
...
"""
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-11 21:20:20
Wszystkie podane tutaj rozwiązania nie pomogły(ograniczam się do Pythona 2.6.6). Znalazłem odpowiedź w prostym przełączniku, aby przejść do pip:
$ sudo pip install --trusted-host pypi.python.org <module_name>
To mówi pip, że można pobrać moduł z pypi.python.org.
Dla mnie problemem jest proxy mojej firmy za firewallem, który sprawia, że wygląda na złośliwego klienta dla niektórych serwerów. Hura Ochrona.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-07 19:31:08
Ta odpowiedź jest niezwiązana, ale jeśli chcesz pozbyć się ostrzeżenia i uzyskać następujące ostrzeżenie od żądań:
InsecurePlatformWarning
/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.
Możesz wyłączyć dodając następującą linię do kodu Pythona:
requests.packages.urllib3.disable_warnings()
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-20 10:32:58
Najpierw musiałem iść do ZSH. Then
sudo -H pip install 'requests[security]' --upgrade
Naprawiono problem.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-26 13:55:17
Dla mnie żadnej pracy nie potrzebuję upgrade pip....
Debian / Ubuntu
Install dependencies
sudo apt-get install libpython-dev libssl-dev libffi-dev
Upgrade PIP and install packages
sudo pip install -U pip
sudo pip install -U pyopenssl ndg-httpsclient pyasn1
Jeśli chcesz usunąć zależności
sudo apt-get remove --purge libpython-dev libssl-dev libffi-dev
sudo apt-get autoremove
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-12 17:41:58
Właśnie miałem podobny problem na serwerze CentOS 5, gdzie zainstalowałem Pythona 2.7.12 w /usr / local na znacznie starszej wersji python2. 7. Aktualizacja do CentOS 6 lub 7 nie jest obecnie dostępna na tym serwerze.
Niektóre moduły Pythona 2.7 nadal istniały ze starszej wersji Pythona, ale pip nie dokonał aktualizacji, ponieważ nowszy pakiet kryptograficzny nie jest obsługiwany przez Pakiety CentOS 5.
W szczególności, 'pip install requests [security]' nie powiodło się ponieważ wersja openssl na CentOS 5 była 0.9.8 e, która nie jest już obsługiwana przez cryptography > 1.4.0.
Aby rozwiązać oryginalny problem OPs zrobiłem:
1) pip install 'cryptography<1.3.5,>1.3.0'.
To zainstalowane cryptography 1.3.4, które współpracuje z openssl-0.9.8 e. cryptograpy 1.3.4 jest również wystarczające, aby spełnić wymagania dla następującego polecenia.
2) pip install 'requests[security]'
To polecenie instaluje się teraz, ponieważ nie próbuje zainstalować cryptography > 1.4.0.
Zauważ, że na Centos 5 też potrzebowałem do:
yum install openssl-devel
Aby umożliwić budowę kryptografii
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-28 16:01:15
Poniżej jak to działa u mnie na Pythonie 3.6:
import requests
import urllib3
# Suppress InsecureRequestWarning: Unverified HTTPS
urllib3.disable_warnings()
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-07 18:27:53
Dont install pyOpenSSL as it shall be deprecated. Obecnie najlepszym podejściem jest -
import requests
requests.packages.urllib3.disable_warnings()
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-31 18:23:31
To pojawiło się dla mnie na Ubuntu 14.04 (z Pythonem 2.7.6) w zeszłym tygodniu po tym, jak zrobiłem apt-get dist-upgrade
, który zawierał libssl1.1:amd64
z deb.sury.org
.
Ponieważ uruchamiam certbot-auto renew
z Zadania cron, używam również --no-self-upgrade
, aby ograniczyć nieplanowaną konserwację. To wydaje się być źródłem kłopotów.
Aby naprawić błąd, wszystko, co musiałem zrobić, to zostać rootem (z su
'S --login
switch) i pozwolić certbot-auto
uaktualnić się. I. E:
sudo su --login
/usr/local/bin/certbot-auto renew
# ... Upgrading certbot-auto 0.8.1 to 0.18.2... blah blah blah ...
Zamiast tego, co normalnie działa z crontab roota:
5 7 * * * /usr/local/bin/certbot-auto renew --quiet --no-self-upgrade
Po tym, letsencrypt renwals ponownie działał normalnie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-25 17:44:12
Jeśli chcesz zatrzymać ostrzeżenie typu:
/usr/lib / python3/dist-packages / urllib3/connectionpool. py: 794: InsecureRequestWarning: wysyłane jest niezweryfikowane żądanie HTTPS. Dodawanie zaleca się weryfikację certyfikatu. Zobacz też: https://urllib3.readthedocs.org/en/latest/security.html InsecureRequestWarning)
Do:
requests.METHOD("https://www.google.com", verify=False)
Verify = False
Jest kluczem, następstwa nie są w tym Dobre:
Prośby.paczki.urllib3disable_warnings ()
Lub
Ale musisz wiedzieć, że to może spowodować potencjalne zagrożenie bezpieczeństwa.Urllib3.disable_warnings ()
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-21 07:06:17