Использование клиентского сертификата .p12 в API-запросах (Python)
Всем привет! Для запросов к API имеется сертификат p12, который защищён паролем. Успешно добавила этот сертификат в браузер, запросы через Swagger выполняются. Теперь пытаюсь прикрутить этот сертификат к автотестам вот таким образом:
res = requests.post(url, headers=default_headers, cert='pkcs12_197.p12'), не выходит, т.к. нужно каким-то образом добавить ключ.
Нашла решение здесь https://stackoverflow.com/questions/49163100/p12-cert-authenticate-python , но при использовании ловлю:
"DeprecationWarning: PKCS#12 support in pyOpenSSL is deprecated. You should use the APIs in cryptography. p12 = crypto.load_pkcs12(open("pkcs12_197.p12", 'rb').read(), certpw.encode())"
Может кто-нибудь подсказать, как реализовать подобное с библиотекой cryptography? Необходимо получить пару (cert, key).
Ответы (1 шт):
Отвечу сама на свой вопрос. Решение можно найти здесь:
Экспорт сертификатов и закрытого ключа из файла PKCS # 12 с помощью OpenSSL
Необходимо воспользоваться утилитой openssl в Linux-окружении. Файлы .crt и .key передаются в виде кортежа при запросе.
clientcert = ('cert-file.crt', 'key-file.key')
res = requests.post(url, cert=clientcert)