Какой правильный способ для программы Python / Twisted для проверки SSL-сертификата в Windows? - PullRequest
7 голосов
/ 10 ноября 2010

Есть ли способ для программы на Python / Twisted безошибочно использовать список корневых сертификатов, которые Internet Explorer использует для проверки SSL-соединения с сервером HTTPS? Ответы на Проверка SSL-сертификатов с помощью Python очень полезны, но пример кода получает корневые сертификаты, читая специальный каталог Unix /etc/ssl/certs/*.pem, и мне не ясно, что Windows эквивалент этого будет.

1 Ответ

3 голосов
/ 10 ноября 2010

Эквивалентом Windows является «копия /etc/ssl/certs/*.pem с вашего компьютера с Linux».Mac и Windows имеют разные собственные API для доступа к соответствующим хранилищам сертификатов, которые Twisted напрямую не поддерживает.Они не используют OpenSSL сертификаты изначально, и они, конечно, не помещают вещи так же просто, как «каталог файлов PEM».Если вы можете экспортировать свои доверительные корни как PEM, вы можете попросить Twisted (ну, действительно, OpenSSL через PyOpenSSL) проверить это таким образом.

Я абстрактно заинтересован в том, чтобы сделать это в супер-портативный способ, но я никогда не пробовал.Вот несколько ссылок, с которых можно начать: Ссылка на SecureTransport , Функции шифрования Microsoft .

В ссылке на SecureTransport документация указывает, что SSLGetTrustedRoots устарела, ноне упоминает альтернативу SSLCopyTrustedRoots, которой нет.Это, вероятно, API, с которого вы хотите начать на Mac (через PyObjC).В Windows я действительно не уверен, за исключением того, что где-то в этой куче функций, вероятно, есть та, которая делает то, что вам нужно, и, возможно, вы можете вызвать ее с помощью ctypes:).

...