我正在更新一個有點年紀的Node.js系統,作業系統是Ubuntu 16
,他在今天才被發現壞掉。
主要是superagent
在 Call SSO的API時回傳certificate has expired
,我認為是一個月前Let's Encrypt Root過期導致的問題。
我已經更新該機器的openssl
到OpenSSL 1.1.1k 25 Mar 2021
,但無效。
也更新Node.js的superagent
到最新版的6.1.0
了。
還把DST Root CA X3
從系統證書庫移除了
執行openssl s_client -connect id.nycu.edu.tw:443
,也得到Verification: OK
的結論。
請問我還需要檢查哪些地方呢?
問題可能和這位 前輩 發現的問題一樣,出在憑證與系統時間。
可以用 curl 或 wget 的 verbose 來檢視 API 的過程,再看收到的資訊是否有下列其中一項,有的話問題出在 時間
根據 Mozilla - 修正在安全的網站上和時間有關的錯誤
SEC_ERROR_EXPIRED_CERTIFICATE
SEC_ERROR_EXPIRED_ISSUER_CERTIFICATE
SEC_ERROR_OCSP_FUTURE_RESPONSE
SEC_ERROR_OCSP_OLD_RESPONSE
MOZILLA_PKIX_ERROR_NOT_YET_VALID_CERTIFICATE
MOZILLA_PKIX_ERROR_NOT_YET_VALID_ISSUER_CERTIFICATE