Как использовать файл .jks (Java keystore) для выполнения HTTP-запроса в Python

1

Я поделился файлом .jks и private key, и мне нужно сделать HTTP-запрос после использования модуля requests.

Я прошел через модуль запросов и обнаружил, что могу сделать запрос примерно так:

requests.post(<url>, <req xml>, headers={k: v}, cert=('/path/client.cert', '/path/client.key'))

Но у моего файла есть расширение .jks. Я попробовал запустить запрос, как показано ниже -

requests.post(<url>, <req xml>, headers={k: v}, cert=('/path/file.jks', 'my-private-key'))

Я получаю эту ошибку -

OpenSSL.SSL.Error: [("PEM-процедуры", "PEM_read_bio", "нет начальной строки"), ("SSL rou tines", "SSL_CTX_use_certificate_file", "PEM lib")]

Можно ли использовать файл .jks для запроса HTTP? Любое предложение, как я могу это исправить. Благодарю.

Теги:
python-requests
python-3.x

2 ответа

0

JKS - это старый и устаревший формат хранилища java, более новые - PKCS # 12.

Вы можете использовать lib как Pyjks или java keytool для извлечения необходимых вам сертификатов и поместить их в файлы с кодировкой pem для использования с запросами. (https://github.com/kurtbrose/pyjks)

Или вы можете погрузиться в внутренние элементы urllib3 (https://github.com/urllib3/urllib3/blob/master/src/urllib3/util/ssl_.py) и создать контекст ssl самостоятельно, аналогично примеру, показанному в документации pyjks,

-2

Получили ли вы решение?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню