![](/img/trans.png)
[英]Certificate Verify Failed when using Requests in Python with a self signed certificate
[英]How to authenticate self signed certificate with password using Python requests
我正在嘗試使用python請求將https請求發送到IIS服務器並獲取響應以進行解析。身份驗證是使用自簽名證書完成的。我已經使用以下命令生成了帶有密碼和密鑰的證書。 我正在使用TestPublicKey.pem和plainkey.pem作為request.get方法中cert屬性的輸入。 有人可以指導我如何實現這一目標嗎?
C:\OpenSSL-Win64\bin>openssl req -x509 -newkey rsa:2048 -keyout TestPrivateKey.pem -out TestPublicKey.pem -days 9999
C:\OpenSSL-Win64\bin>openssl pkcs12 -inkey TestPrivateKey.pem -in TestPublicKey.pem -export -out Test.pfx
Enter pass phrase for cTestPrivateKey.pem:
Enter Export Password:
Verifying - Enter Export Password:
C:\OpenSSL-Win64\bin>openssl rsa -in TestPrivateKey.pem -out plainkey.pem
Enter pass phrase for TestPrivateKey.pem:
writing RSA key
import requests
url = "https://10.110.20.75/REST/getxml"
r = requests.request("GET", url, verify=False,cert=('TestPublicKey.pem','plainkey.pem'))
print r.status_code
如果verify
設置為False
,則獲取403
status_code。 如果verify
設置為True
則引發SSL錯誤異常。
raise SSLError(e, request=request)
requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:661)
我通過嘗試以下openssl命令和python代碼來解決此問題。 注意:此答案是沒有密碼的證書,如果有任何答案或意見。我很高興看到。
Open SSL commands
生成自簽名證書
openssl req -x509 -nodes -days 30 -newkey rsa:2048 -keyout test_Private.key -out test_certificate.cer -subj "/CN=*.hpe.com"
將證書和私鑰轉換為.PFX
openssl pkcs12 -export -out test_PFX.pfx -inkey test_Private.key -in test_certificate.cer -name "*.hpe.com" -passout pass:
Python code
import requests
url = "https://10.110.20.75/REST/getxml"
webServiceResponse=requests.request("GET",url,verify='test_certificate.cer)
print webServiceResponse.status_code
print webServiceResponse.json()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.