Торнадо: [SSL: CERTIFICATE_VERIFY_FAILED] - PullRequest
       30

Торнадо: [SSL: CERTIFICATE_VERIFY_FAILED]

0 голосов
/ 02 сентября 2018

Я пытаюсь запустить эту программу, чтобы понять асинхронное программирование с использованием торнадо.

`import tornado.ioloop
 from tornado.httpclient import AsyncHTTPClient
 url = 'https://jsonplaceholder.typicode.com/posts'

 def handle_response(response):
       url = response.request.url
       data = response.body
       print('{}: {} bytes: {}'.format(url, len(data), data))

 http_client = AsyncHTTPClient()

 http_client.fetch(url, handle_response)

 tornado.ioloop.IOLoop.instance().start()`

Однако я получаю эту ошибку, когда пытаюсь ее запустить

[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1045)

Ответы [ 2 ]

0 голосов
/ 02 сентября 2018

Ошибка SSL произошла из-за того, что Python 3.7 больше не использует openSSL в MacOS. Он поставляется с собственным openSSL и не имеет доступа к корневым сертификатам MacOS. Поэтому все, что мне нужно было сделать, это запустить следующую команду -

/Applications/Python\ 3.7/Install\ Certificates.command
0 голосов
/ 02 сентября 2018

Я протестировал ваш код, используя python3, и он работал как положено. Возможно, вы захотите устранить неполадки при подключении к этому веб-сайту с вашего компьютера через браузер или с помощью curl.

Это указывает на то, что по какой-то причине клиент http не может проверить сертификат SSL для веб-сайта. Если вы не можете получить доступ к странице в своем браузере, вам необходимо определить причину этого, это может быть связано с блокировщиком рекламы / контента на основе DNS или другими (неизвестными) вещами.

РЕДАКТИРОВАТЬ: это также может быть связано с тем, что ваш компьютер дрейфует слишком далеко от фактического времени.

...