Использование wssecurity при использовании веб-сервиса с помощью Zeep

Поэтому я пытался использовать веб-сервис, который требует использования wssecurity. Я получил файл.p12, который я разделил на два файла.pem. Один содержит закрытый ключ, а другой - файл сертификации с помощью openssl.

Вот код, написанный на python с использованием мыла-клиента zeep:

signature = Signature(key_file='C:\key.pem',
                      certfile='C:\cert.pem', password='')
client = Client(wsse=signature,
                  wsdl='test.wsdl',
plugins=[pmhistory])

Построение конверта с использованием встроенной функции type_factory Затем я получаю доступ к методу конечной точки с помощью следующего кода:

returnedMess = client.service.GetInfo(pm_value, _soapheaders={'header':manifest})

Когда я выполняю код, я получаю следующую ошибку:

    File "C:\Python27\lib\site-packages\zeep\wsdl\bindings\soap.py", line 95, in _create
    envelope, http_headers)
  File "C:\Python27\lib\site-packages\zeep\wsse\signature.py", line 56, in apply
    key = _make_sign_key(self.key_data, self.cert_data, self.password)
  File "C:\Python27\lib\site-packages\zeep\wsse\signature.py", line 35, in _make_sign_key
    key = xmlsec.Key.from_memory(key_data, xmlsec.KeyFormat.PEM, password)
xmlsec.Error: (1, 'cannot load key')

У кого-нибудь есть информация о возвращенной ошибке? Является ли файл сертификации.p12 всем необходимым для подписания конверта с X509 и шифрования данных тела xml?

0 ответов

Другие вопросы по тегам