Bash

SSL 無證書

  • June 23, 2014

我正在嘗試製作一個 bash 腳本,該腳本將檢查我的網站客戶端的 SSL 狀態並返回錯誤。但是對於每個 IP,wget https://$ip:$port都會給我以下錯誤:

ERROR: The certificate of 1.2.3.4 is not trusted
ERROR: The certificate of 1.2.3.4 hasn't got a know issuer

當我嘗試使用 Firefox 時,我擁有每個 IP 的證書。所以我嘗試將 Firefox CA 轉儲到這樣的儲存庫:

wget http://$ip:$port --ca-directory=(directory of CA from Firefox)

但這並沒有改變任何東西。

我想,wget沒有找到 SSL 證書,我也不知道要得到它們。

如何獲取證書資訊?

通常 SSL 證書頒發給主機名www.example.com,而不是 IP 地址。

因此,當您使用 IP 地址時,您訪問的 URL 與頒發證書的主機名不匹配。

其次,來自 firefox 的 CA 目錄可能不適合,根據 wget 手冊頁的要求:

–ca-directory=directory指定包含 PEM 格式的 CA 證書的目錄。每個文件包含一個 CA 證書,文件名基於從證書派生的雜湊值。…

我認為 wget 使用 openssl 庫,這可能使它成為一個更詳細的實用程序來檢查證書狀態,例如在查詢中確定 SSL 證書的到期日期:

echo "GET /" | openssl s_client -connect servername:port  | openssl x509 -noout -dates

引用自:https://unix.stackexchange.com/questions/138656