2015-10-03 5 views
0

У меня есть зашифрованный клиентский сертификат и зашифрованный ключ как файлы PEM, и вы хотите пройти аутентификацию на веб-сайте и получить страницу (через GET) с помощью скрипта python. Я уже успел сделать это, используя curl в оболочке. Поэтому я попытался вызвать curl из скрипта python, но я не могу использовать subprocess.Popen для отправки пароля через stdin, поскольку пароль не читается через stdin curl (аналогично ssh). Я был бы еще счастливее, если бы был способ использовать стандартные библиотеки python для декодирования зашифрованного сертификата и использования его для доступа к веб-сайту.Вызов REST api с зашифрованным сертификатом клиента PEM

я нашел несколько предложений для решения подобных проблем, но не из них отвечает всем моим требованиям:

  • Я не хочу, чтобы сохранить в незашифрованном виде сертификата в любом месте.
  • Пользователь должен только предоставить свою кодовую фразу один раз и впоследствии необходимо выполнить несколько запросов.
  • Он должен работать с питоном 2.7.3, желательно даже с питоном 2,6
+0

Возможно, это то, что вы ищете? http://stackoverflow.com/questions/23705770/python-requests-pem-crt-key – sirfz

ответ

0

мне удалось найти решение с помощью pycurl:

import pycurl 
from StringIO import StringIO 
buffer = StringIO() 
c = pycurl.Curl() 
c.setopt(c.URL, MYURL) 
c.setopt(c.WRITEFUNCTION, buffer.write) 
c.setopt(c.SSLCERT, 'clientcert.pem') 
c.setopt(c.SSLCERTPASSWD, passphrase) 
c.setopt(c.SSLKEY, 'clientkey.pem') 
c.perform() 
c.close() 
print buffer.getvalue() 

 Смежные вопросы

  • Нет связанных вопросов^_^