在 Debian 上通過 https 下載不起作用(openssl 配置錯誤?)
我在 Debian wheezy 伺服器上,我試圖通過 https 下載東西但沒有成功。
當我嘗試使用
curl
時,它通過範例給了我這個答案:curl: (60) SSL certificate problem, verify that the CA cert is OK. Details: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed More details here: http://curl.haxx.se/docs/sslcerts.html
wget
給了我類似的東西:ERROR: cannot verify www.domain.com’s certificate, issued by “/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 High Assurance Server CA”: Unable to locally verify the issuer’s authority.
當我執行命令時,
openssl s_client -showcerts -connect www.facebook.com:443
我收到了答案verify error:num=20:unable to get local issuer certificate
,但是當我這樣做openssl s_client -CApath /etc/ssl/certs/ -showcerts -connect www.facebook.com:443
時效果很好。所以我認為有一個未設置的環境變數,因為我可以在設置公鑰路徑時執行證書檢查。
我需要做什麼才能修復它?
提前致謝!
您不是在處理錯誤配置。
Wheezy 可能已經顯示出它的年齡了。證書 CA 公共根鏈現在可能大部分都過期了,而我們所說的 openssl/libSSL 正在使用過時的協議。
解決這個問題的最簡單方法是升級到最近的 Debian 版本,這也是因為 Wheezy 是從 2013 年開始,並且自 2018 年 5 月 31 日以來一直是 EOL。(或者換句話說,有些人已經在計劃/測試他們很快會遷移到 Debian 10而 Wheezy 是 3 個版本,落後 5 年)
您也可以嘗試使用
curl -k
或wget --no-check-certificate
忽略證書檢查,它可能會起作用。您甚至可以嘗試按照@GAD3R 的建議更新證書(不知道它是否能解決您的問題),或者手動安裝 Digicert 根 CA 證書。(fb 證書是用 Digicert 簽名的)
但是,對於這樣的 Debian 舊版本,您將遇到其他安全問題,並且還需要處理 SSL,因此,如果可以,您應該升級它。