簡體   English   中英

無法在python的請求中使用客戶端證書進行身份驗證

[英]Not able to authenticate using client certificate in Requests of python

我正在使用以下代碼行來請求HTTPS網址。

r = requests.get(
 'https://xxxx.xxx.xxx',
    cert='/Users/xxxx/Documents/xxxx.pem')

但是它返回了這個錯誤:

SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",),))

我可以通過以下命令加載證書:

openssl x509 -in xxxx.pem -text -noout

並檢查證書中的私鑰:

openssl rsa -in xxxx.pem -check

我不知道要使此呼叫有效的原因是什么。 chrome中的相同請求運行正常。

謝謝!

如果'/Users/xxxx/Documents/xxxx.pem'是檢查'https://xxxx.xxx.xxx' 證書所需的CA證書 ,那么您需要將其傳遞給param verify requests

r = requests.get(
   'https://xxxx.xxx.xxx',
   verify='/Users/xxxx/Documents/xxxx.pem',
)

如果它是用於客戶端驗證的證書,則不僅需要傳遞證書的路徑,還需要傳遞私鑰的路徑:

r = requests.get(
   'https://xxxx.xxx.xxx',
   cert=('/Users/xxxx/Documents/cert.pem', '/Users/xxxx/Documents/privkey.pem'),
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM