我正在嘗試使用 Python 請求訪問 https API。我得到了一個證書和一個密碼來訪問它。
我越來越
HTTPSConnectionPool(host='abc.coom', port=443): Max retries exceeded with url: //AIMWebService//api//Accounts?AppID=xyz&Safe=123&Object=obj (Caused by SSLError(SSLError(9, '[SSL] PEM lib (_ssl.c:4024)')))
早些時候,我通過在設定->證書中添加證書以及密碼短語,訪問了這個 API 并在 Postman 中成功獲得了結果。
import json
import requests
clientCrt = "C:\\abc\\abc-Certs\\cert-TEST.pfx"
#clientKey = "Passphrase"
url = "https://abc.coom/AIMWebService/api/Accounts?AppID=xyz&Safe=123&Object=obj"
certServer = "C:\\Users\\MyName\\Anaconda3\\Lib\\site-packages\\certifi"
headers = {'content-type': 'application/json'}
#r = requests.get(url, verify=False, headers=headers, cert=(clientCrt, clientKey))
r = requests.get(url, verify=False, headers=headers, cert=clientCrt)
#r = requests.get(url, verify=certServer, headers=headers, cert=clientCrt)
#r = requests.get(url, verify=False, headers=headers)
print(r.status_code)
print(r.json())
如您所見,我嘗試了多個選項來訪問它。通過使用verify=False,我認為我根本不需要使用密碼。
有人可以幫助我克服這個問題嗎?
uj5u.com熱心網友回復:
requests需要與PEM您的.pfx檔案格式相同的證書PKCS#12。
您可以更改您的證書格式:使用 openssl 將 pfx 轉換為 pem。
或者,您可以使用此庫為請求添加 PKCS#12 支持。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/398805.html
上一篇:無法從api中提取簡單資訊
下一篇:無法讀取未定義地圖的屬性
