Итак, я пытался использовать веб-сервис, который требует использования 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?