Почему я время от времени получаю сообщение об ошибке SSL: CERTIFICATE_VERIFY_FAILED в Python 2.7.9+?

Почему я время от времени получаю сообщение об ошибке SSL: CERTIFICATE_VERIFY_FAILED в Python 2.7.9+?

Позвольте мне начать с того, что я знаю об изменениях в Python 2.7.9 для проверки SSL-сертификатов. Я также знаю несколько разных способов обойти это, чтобы отключить. Мой вопрос в том, почему я время от времени получаю эту ошибку? Я бы подумал, что если что-то не так, то это всегда будет постоянно давать сбой, но это не то, что я вижу. Я работал над каким-то кодом весь день, который случайно делает какие-то запросы, urllibи просто из ниоткуда я начал получать следующую ошибку:

URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)>

Пока я писал этот вопрос, я спрятал и вытащил свои изменения (в git) и ошибка прекратилась. Почему такая непоследовательность?

ОБНОВЛЕНИЕ: Эта ошибка также возникает в Python 3, но происходит постоянно.

решение1

Возможно, я решил эту проблему. Оказывается, в моей конфигурации Apache отсутствовала настройка SSLCertificateChainFile. Я точно знаю, что это исправляет ошибку Python 3, поскольку она возникала постоянно. Я предполагаю, что она больше не возникнет и в Python 2.7.9, но у меня нет способа воссоздать ошибку в Python 2, поэтому я не могу знать наверняка.

Связанный контент