Использование wssecurity при использовании веб-сервиса с помощью Zeep - PullRequest
0 голосов
/ 29 января 2019

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

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

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

Построение конверта с использованием функции build_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?

...