iT邦幫忙

0

[python] 程式出現 CERTIFICATE_VERIFY_FAILED ,但用瀏覽器瀏覽該網頁的 SSL 是正常的!

wrxue 2021-05-19 11:02:5115790 瀏覽
import requests
url = 'https://go.nkust.edu.tw'

req = requests.get(url)
requests.exceptions.SSLError: HTTPSConnectionPool(host='go.nkust.edu.tw', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1123)')))

請教各位為什麼會這樣~
在瀏覽器瀏覽該網站是正常的,但用 requests 就 error,說找不到 issuer 的憑證

但另一個同家 CA 的網站就不會出現這個 error

import requests
url = 'https://www.ly.gov.tw/Home/Index.aspx'

req = requests.get(url)

想知道為什麼會這樣~~!

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
echochio
iT邦高手 1 級 ‧ 2021-05-19 11:14:53
最佳解答

請用 ssl checker 去檢查 的確那個網站SSL 有問題, 裡面沒有 chain 這個證書
https://ithelp.ithome.com.tw/upload/images/20210519/20110611VZFVtMuLCP.png

如果你是網站管理者就去處理這個問題
如果不是又一定要requests 用不檢查ssl 去處理

import requests
url = 'https://go.nkust.edu.tw'
req = requests.get(url,verify=False)

挖哩 .... 電算中心 ... 管理者快去處理吧

wrxue iT邦好手 1 級 ‧ 2021-05-19 11:29:15 檢舉

太猛啦,我還去 trace requests 的 code 想知道到底少了什麼,發現最後判斷的地方是 c 語言就無法進行下去。太感謝您了~
ps 這不關我的事XD 只是好奇為什麼會這樣

0
Ray
iT邦大神 1 級 ‧ 2021-05-19 11:41:42

啊就安裝憑證的人, 沒有把中繼憑證包進去安裝....

wrxue iT邦好手 1 級 ‧ 2021-05-19 11:56:25 檢舉

請問大大,因為這個網站在瀏覽器上的 ssl 鎖頭是正常的,
少了中繼憑證的話會導致什麼風險嗎?(我個人覺得是瀏覽器OK就OK,但不知道實際情況是如何)

Ray iT邦大神 1 級 ‧ 2021-05-19 12:34:36 檢舉

我要發表回答

立即登入回答