Использование 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?