Bash
SSL 無證書
我正在嘗試製作一個 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