多数ドメインのSSL証明書の有効期限を一括で確認する(opensslコマンド)

IT技術

概要

SSL証明書の有効期限を確認する場合、2〜 3ドメインであればWEBブラウザから確認すればよいが、多数のドメインに対して確認する場合、WEBブラウザ(GUI)による確認は大変である。

本記事ではLinuxのopensslコマンドを使用し、多数ドメインのSSL証明書の有効期限を一括で確認する方法を記載する。

システム環境

  • Debian GNU/Linux 11 (bullseye)
  • Oracle Linux Server 8.5

SSL証明書の有効期限を確認

確認対象ドメインをdomain.lstファイルに記載する。

[user]$ vi /tmp/domain.lst
www.google.co.jp
www.yahoo.co.jp
blg.dai-it-system.com
[user]$

以下のスクリプトを作成する。

[user]$ vi /tmp/check_cert.sh
#!/bin/bash
## 環境変数の設定
DOMAIN_LIST="/tmp/domain.lst"
TMP_OUTPUT="/tmp/check_cert.tmp"
## 一時ファイルの初期化
cat /dev/null > ${TMP_OUTPUT}
## ドメインごとにSSL証明書チェックし、一時ファイルに結果出力
for DOMAIN in `cat ${DOMAIN_LIST}`
do
  CERT_DATE_TMP1=`openssl s_client -connect ${DOMAIN}:443 < /dev/null 2> /dev/null | openssl x509 -enddate -noout`
  CERT_DATE_TMP2=`echo ${CERT_DATE_TMP1} | awk -F'=' '{print $2}'`
  CERT_DATE=`date --date="${CERT_DATE_TMP2}" --utc +"%Y/%m/%d"`
  
  echo "${CERT_DATE},${DOMAIN}" >> ${TMP_OUTPUT}
  sleep 1
done
## 結果をソートして標準出力に表示
cat ${TMP_OUTPUT} | sort
## 一時ファイルの削除
rm -rf ${TMP_OUTPUT}
[user]$

作成したスクリプトを実行すると、以下のように結果が表示される。

[user]$ sh /tmp/check_cert.sh
2023/05/11,blg.dai-it-system.com
2023/05/29,www.google.co.jp
2024/04/05,www.yahoo.co.jp
[user]$

タイトルとURLをコピーしました