Только на локальном компьютере: [SSL: CERTIFICATE_VERIFY_FAILED] _ssl. c: 1108) Ошибка - PullRequest
0 голосов
/ 15 апреля 2020

Я могу нормально подключиться с помощью Python к любому внешнему сайту https без этой ошибки: SSL: CERTIFICATE_VERIFY_FAILED] Не удалось проверить сертификат: невозможно получить сертификат локального эмитента (_ssl. c: 1108) ')))

Но у меня на ноутбуке есть локальный веб-сервер с самозаверяющим сертификатом, который сам по себе работает нормально, но Python генерирует ошибку _ssl. c: 1108 при попытке подключиться к нему.

Любые идеи?

1 Ответ

0 голосов
/ 15 апреля 2020

Клиент python не имеет доступа и доверяет сертификату CA, который подписал сертификат веб-сервера. В вашем случае это самозаверяющий сертификат веб-сервера.

Чтобы клиент python работал, вы можете сделать следующее:

  1. отключить проверку сертификата. Это не очень хорошая идея, но я думаю, для быстрого теста это нормально. Акцент делается на том, что « не рекомендуется ».
  2. Загрузите самозаверяющий сертификат и сделайте его доступным для клиента python и укажите его в качестве доверенного сертификата CA.
  3. Загрузите и установите сертификат от известных ЦС, таких как LetsEncrypt (бесплатно) или коммерческих ЦС. Это рекомендуемый подход.

Вы можете go углубиться в элементы, упомянутые здесь, и получить концептуальное понимание того, как работает TLS.

РЕДАКТИРОВАТЬ 1 : Вы также можете получить бесплатный сертификат от LetsEncrypt CA. Или вы можете получить free test certificate from most of the commercial CAs как DigiCert et c. См. Эту ссылку для получения и установки бесплатного тестового сертификата, подписанного тестовым центром DigiCert.

См. this для получения подробной информации о python конфигурации клиента для TLS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...