當你在Python中使用`requests`庫進行HTTPS請求時,如果遇到SSL證書驗證失敗的錯誤,這通常意味著Python無法驗證服務器的SSL證書。這可能是因為本地系統缺少必要的根證書,或者服務器的證書不受信任。
解決這個問題有幾種方法:
### 方法1:安裝證書
確保你的系統上安裝了正確的根證書。對于某些操作系統,你可能需要手動安裝或更新證書。
### 方法2:使用certifi包
`certifi`是一個Python包,包含了Mozilla的CA證書包。你可以安裝并使用它來提供最新的證書。
~~~
shellCopy codepip install certifi
~~~
然后在你的請求中指定`certifi`的CA證書包:
~~~
pythonCopy codeimport requests
import certifi
url = 'https://example.com'
response = requests.get(url, verify=certifi.where())
~~~
### 方法3:禁用證書驗證(不推薦)
作為最后的手段,你可以選擇禁用SSL證書驗證。這不是一個推薦的做法,因為它會使你的應用程序容易受到中間人攻擊,但是如果你只是在本地測試,可以暫時這樣做:
~~~
pythonCopy codeimport requests
url = 'https://example.com'
response = requests.get(url, verify=False)
~~~
如果你選擇這種方法,請確保不要在生產環境中使用它。
### 方法4:指定本地證書路徑
如果你有服務器的SSL證書文件,你可以在請求中直接指定它:
~~~
pythonCopy codeimport requests
url = 'https://example.com'
response = requests.get(url, verify='/path/to/certificate')
~~~
將`'/path/to/certificate'`替換為你的證書文件的實際路徑。
### 方法5:更新OpenSSL
確保你的系統上的OpenSSL庫是最新的,因為一個過時的OpenSSL版本可能無法正確驗證證書。
在解決這個問題時,請考慮到安全性的重要性。在生產環境中,你應該始終確保SSL證書得到正確驗證,以保護用戶數據的安全
- 前言
- 1.入門篇
- Python介紹
- 安裝與使用
- Python開發利器之VS Code
- 模塊安裝
- 命令行
- 一次Python無法安裝模塊的問題探索與解決之旅
- 命令運行
- Conda
- 下載地址
- 2.基礎篇
- 基礎語法
- 輸入與輸出
- with as的用法
- 注釋
- Python命令行參數
- 編碼
- 變量類型
- 列表遍歷
- 運算符
- 表達式語句
- 條件
- 循環
- 日期和時間
- 函數
- 高級語法
- @符號-裝飾器
- 模塊和包
- name
- init.py
- 錯誤和異常
- 面向對象
- 3.專題篇
- 常用功能
- Python 字符串連接
- python web
- Python CGI編程
- Python OAuth2
- 認證 Flask-HTTPAuth
- 常用命令
- 內置函數
- dir()
- print(f)
- 標準模塊
- sys
- pickle-數據序列化
- os
- IO(輸入輸出)
- 鍵盤輸入
- 文件讀寫
- 測試
- Python測試框架之pytest快速入門
- pytest-bdd快速示例和問題解決
- 基于pytest-bdd的項目目錄結構和命名規范
- python BDD 的相關概念
- Behave介紹和快速示例
- Python BDD之Behave測試報告
- Python BDD 框架比較之 pytest-bdd vs behave
- pytest進階
- Flask + pytest測試
- 參考網址
- pytest-bdd進階
- hehave進階
- 測試路徑
- python + selunium
- HTML 根據多層CSS 查找元素
- 等待執行
- 使用text 查找 span
- pytest如何在控制臺輸出
- 4.問題篇
- pip pip3 及區別
- TypeError: can only concatenate str (not "NoneType") to str
- 5.實戰篇
- matplotlib-繪圖包
- 導入類
- 命名規范
- 模塊查找
- 6.進階篇
- Flask
- Flask介紹
- Flask擴展模塊
- Flask-Login
- 問題
- Jinja2
- Flask-RESTful
- Flask-JWT-Extended
- WSGI
- Flask-SQLAlchemy
- 部署
- Flask VS Django
- Flask Web
- Flask + Vue
- Flask實戰
- Flask 標準目錄結構
- Blueprints
- 參考
- FastAPI 測試
- https 證書 Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate