Как получить сертификат SSL для проверки в Python?

У меня есть недорогой сертификат от EssentialSSL (Comodo - это CA), и я с удивлением обнаружил, что Python его не распознал.

requests.exceptions.SSLError: [Errno 1] _ssl.c:509: error:14090086:SSL
routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

Сертификат, похоже, правильно распознается всеми основными браузерами, но Python его не проверяет.

Если возможно, я бы предпочел простое решение для установки, такое как установка пакета или скрипта.

Я был немного удивлен, не увидев Comodo в списке распознанных сертификатов CA по умолчанию, все основные (5) браузеры принимают его, но не Ubuntu wget / python / ... (openssl, я думаю, причина).

2
задан 17 December 2013 в 15:52

1 ответ

Используйте пакет Debian ca-Certificates , который будет включать (помимо других) все сертификаты CA, которые Mozilla Firefox / Thunderbird / etc. использует.

Вы можете использовать файл сертификата (все сертификаты в одном, в формате PEM) в Python следующим образом:

ssl_sock = ssl.wrap_socket(sock,  
                           ca_certs="/etc/ssl/certs/ca-certificates.crt",  
                           cert_reqs=ssl.CERT_REQUIRED  
                          )
0
ответ дан 17 December 2013 в 15:52

Другие вопросы по тегам:

Похожие вопросы: