概要
大量にhostsで証明書の有効期限を確認しないといけない作業があったので備忘録です。
証明書の有効期限を確認したエビデンスも残さなきゃいけなかったので
スプレッドシートでコマンド作成して、出力結果をそのまま記載して残せるように出力させました。
(今回かなり稀なケースでしたが、hosts使わないで確認できるの楽だなと思った次第です)
コマンド
DOMAIN=example.com
HOSTS_IP=192.168.0.2
echo ${DOMAIN}
echo ${HOSTS_IP}
curl -I -v https://${DOMAIN}/ --resolve {DOMAIN}:443:{HOSTS_IP} 2>&1 |grep -1 -n 'expire date:'
----
35-* start date: Oct 22 00:00:00 2020 GMT
36:* expire date: Oct 22 23:59:59 2021 GMT
37-* subjectAltName: host "example.com" matched cert's "example.com"
----
解説
curl オプション
-v: リクエストヘッダとレスポンスヘッダを標準エラー出力に表示する。
-I : ヘッダー情報のみ表示
--resolve : HOST:PORT:IP address (hosts的な役割)
※man curl
で確認すると説明にもありました
wise normally resolved address to be used. Consider it a sort of /etc/hosts
curl -I -v https://${DOMAIN}/ --resolve {DOMAIN}:443:{HOSTS_IP} 2>&1 |grep -1 -n 'expire date:'
標準エラー出力を標準出力にリダイレクトすることで grep コマンドが使用できるようになり、有効期限のみを絞り込むことができるようになります。
参考サイト
ファイルディスクリプタ: https://qiita.com/laikuaut/items/e1cc312ffc7ec2c872fc
curlオプション: https://hydrocul.github.io/wiki/commands/curl.html