Я поделился файлом .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? Любое предложение, как я могу это исправить. Благодарю.
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,
Получили ли вы решение?