Получить SSL-сертификат от сверстника без проверки с помощью Python - PullRequest
4 голосов
/ 30 марта 2011

Я нахожусь в процессе создания быстрого скрипта Python для периодической проверки правильности работы моих клиентов.Одна из этих проверок состоит в том, чтобы удостовериться, что их сертификаты SSL являются действующими, или предоставить предупреждение, если срок действия их сертификата истекает.

Пакеты ssl предоставляют способ получения сертификата однорангового узла с помощью SSLSocket.getpeercert ()метод, но он вернет сертификат, только если сертификат может быть проверен.Если сертификат CA не был получен, проверка не работает.

Я хочу получить сертификат партнера, даже если он не может быть проверен, поэтому я могу получить информацию, необходимую для получения обоихисправьте сертификат CA и проведите другие проверки, такие как проверка соответствия доменного имени, срок действия истекает в правильном диапазоне и т. д. Кто-нибудь знает способ получения этой информации?

pyCurl и pyOpenSSL выглядят как возможные кандидаты, но им не удалось найти пример или заставить их вернуть сертификат.

Приветствия

1 Ответ

3 голосов
/ 03 апреля 2011

Может быть возможно использовать сценарий оболочки для получения сертификатов, а затем использовать Python для перебора выходных файлов сертификатов.Что-то вроде:

$ openssl s_client -connect host:port -showcerts > certfile

может работать.Вы также можете прочитать документацию по объекту Connection pyOpenSSL, который имеет метод get_peer_certificate():

http://packages.python.org/pyOpenSSL/openssl-connection.html#l2h-187

Я никогда не использовал модуль pyOpenSSL, но, вероятно, это вашЛучшая ставка на хранение всего в Python.

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