Как пройти аутентификацию на сайте с типом соединения «TLS 1.0, GOST_28147 с 256 разрядным шифрованием (Высокий); GOST_DH с 512 разрядным обменом»?

Предупреждаю - я новичок. Пытаюсь написать скрипт на python 2.7 для сбора информации из защищенной crm и последующего сохранения в 1с.
При попытке соединения выкидывает ssl.SSLError: [Errno 1] _ssl.c:504: error 0D09B0A3:asn1 encoding routines:d2i_PublicKey:unknown public key type

Так же известно, что crm открывается только в ie с установленной на ПК КриптоПроCSP.
PS взламывать ничего не собираюсь, пароль и логин имеются, есть необходимсть автоматизировать некоторые рутинные процессы.
  • Вопрос задан
  • 4009 просмотров
Пригласить эксперта
Ответы на вопрос 2
Не являясь Python-программистом все таки предположу, что нужно явно указать SSL-модулю, какой криптопровайдер (а именно - КриптоПроCSP) следует использовать при попытке установить соединение.

Беглый взгляд в Google выдает вот такие шаблоны :

context = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
дальше
context.set_ciphers(указать ГОСТ) либо что менее вероятно context.load_cert_chain(указать свой приватный ключ)
а затем
h = client.HTTPSConnection('aaa.ru', 443, context=context)
Ответ написан
@ilov3it Автор вопроса
from OpenSSL import SSL
import ssl, socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = 'crm.garantexpress.ru'
port = 443
s.connect((host, port))
context = SSL.Context(SSL.TLSv1_METHOD)
context.set_cipher_list('ALL')
conn = SSL.Connection(context, s)

После долгих чтений документации получил то, что написано выше. в терминале получаю OpenSSL.SSL.Connection object at (адрес ячейки).
Каким образом теперь можно построить к этому объекту https запрос, или еще рано?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы