狀況

今天在 Python 寫 AI 用到 langchain 模組, 使用前需要下載文字轉向量 model, 結果遇到 certificate verify ailed: self signed certificate in certificate chain (_ssl.c:997) 錯誤, 這是因為公司有網路設備在做 SSL 憑證置換的關係卡到, 解決方法除了不檢查憑證,也可以把公司的憑證匯入 certifi, 下載時就會信任公司的憑證. 這樣做如果連到不安全的網址仍然檢查, 程式會停止存取, 所以我認為是相對安全的. 後來測試以前用 requests 或 urllib module 的錯誤也不會卡住,感覺更方便.

做法如下

  1. 首先確認 certifi 安裝的路徑 image
  2. 先打開預存取的網站,這邊用 yahoo 網站為例, 然後選詳細資料的最上面階層的憑證,把憑證給匯出 image
  3. 下面第一圖是馬賽克後的憑證內容, 將憑證的內容貼到 cacert.pem 內 image image
  4. python 程式就可以正常下載檔案 image