АНБ полюбит ваше решение!

from lxml import html
import requests


url = "https://website.com/"
page = requests.get(url)
tree = html.fromstring(page.content)
page.content

Ошибка SSLE: [SSL: CERTIFICATE_VERIFY_FAILED] проверка сертификата не удалась (_ssl.c: 748)

Я запускаю этот скрипт, но я получил эту ошибку. Как я могу это сделать?

 Kevin Boone04 окт. 2017 г., 16:07
Было бы проще посоветовать, если бы вы могли указать, является ли сайт website.com реальным URL-адресом или просто примером, и какие шаги вы предприняли, чтобы убедиться, что его сертификат является доверенным. Возможно, вам потребуется включить некоторую трассировку SSL.
 Mureinik04 окт. 2017 г., 17:02
 ivan770704 окт. 2017 г., 16:05
возможный дубликат проверить это на идеи.
 Leo04 окт. 2017 г., 16:14
Это внутренний корпоративный URL

Ответы на вопрос(2)

Решение Вопроса

в комментариях), я предполагаю, что он использует самозаверяющий сертификат или выдается самозаверяющим сертификатом CA.

Если это действительно так, у вас есть два варианта:

(1) укажите путь к вашему корпоративному центру сертификации (включая полную цепочку промежуточных сертификатов, если таковые имеются) дляrequests.get() позвонить черезverify аргумент:

requests.get('https://website.lo', verify='/path/to/certfile')

или же(2), отключить проверку сертификата на стороне клиента вообще (ноостерегайтесь всех угроз безопасности это влечет за собой, как простые атаки типа «человек посередине» и т. д.):

requests.get('https://website.lo', verify=False)

Для полноты, соответствующейverify параметр описан вrequests.request() документы:

verify -- (optional) Either a boolean, in which case it controls whether we verify 
          the server's TLS certificate, or a string, in which case it must be a path 
          to a CA bundle to use. Defaults to True.
 Leo04 окт. 2017 г., 18:43
Где я могу найти свой сертификат?
 Cerberus13616 янв. 2019 г., 22:14
Я слишком долго боролся с вариантом ошибки OP. Ответ, который я не знал, мне был нужен:requests.get (»website.lo', проверьте = Ложь), Мой Python безумно ржавый, я пытался вставить в качестве другой позиции команду verify = False, и он просто ничего не делал. Спасибо!
 randomir17 янв. 2019 г., 02:37
@ Cerberus136, просто имейте в виду, что настройка проверки на ложь практически полностью отказывается от безопасности, обеспечиваемой уровнем SSL. Т.е. атака MITM становится тривиальной, поскольку сертификаты могут быть подделаны на лету, и ваш клиент никогда не узнает об этом.
 randomir04 окт. 2017 г., 18:49
requests с по умолчаниюпопробуй использоватьcertifi сверток, но если вы спрашиваете о сертификате CA для вашего внутреннего корпоративного сервера, лучше всего попросить администратора сети предоставить вам свой сертификат.

Используйте приведенный ниже код без SSL

from lxml import html
import requests


url = "http://website.com/"
page = requests.get(url)
tree = html.fromstring(page.content)
page.content
 rweisse04 окт. 2017 г., 16:20
АНБ полюбит ваше решение!

Ваш ответ на вопрос