Я настроил свой сервер, чтобы обслуживать только https, создавая самозаверяющий сертификат. У меня есть клиент, которому я должен проверить сертификат сервера и после этого загрузить файл с сервера.Как проверить сертификат ssl сервера в python?
Как выполнить проверку на клиенте? Есть ли какой-нибудь пример кода?
Мой вопрос схож с этим: How can the SSL client validate the server's certificate? , но хотя прекрасное объяснение, я не нашел никакой помощи.
До сих пор в моем коде я создаю каталог, а затем загрузить файл с urllib2:
[...] #imports
def dir_creation(path):
try:
os.makedirs(path)
except OSError as exception:
if exception.errno != errno.EEXIST:
raise
def file_download(url):
ver_file = urllib2.urlopen(url)
data = ver_file.read()
with open(local_filename, "wb") as code:
code.write(data)
dir_creation(path)
file_download(url)
Я обновил вопрос с моим кодом я уже использую подход urllib2. Значит, вы говорите, что он может проверить сертификат? Я не могу получить этот параметр: cafile = path_to_ca_certificate. Это сертификат клиента? Не могли бы вы рассказать? –
Он приземлился в Python 2.7.9, который поддерживал усовершенствования модуля 'ssl'. Если вы используете Python 2, вы должны перейти на 2.7.9. – frasertweedale