Skip to content

drumsco/cert_expiry

Repository files navigation

TLS証明書有効期限チェックツール

DNSレコードファイルから抽出したホストのTLS証明書有効期限を効率的に確認するシェルスクリプトです。お名前.com形式のDNSレコード設定完了通知メールフォーマットおよびBINDゾーンファイル(RFC 1035準拠)に対応しています。

バージョン

v0.1

クイックスタート

# インストール
git clone <repository>
cd cert_expiry
chmod +x cert_expiry.sh

# 実行
./cert_expiry.sh

使用方法

基本的な実行手順

# TLS証明書有効期限チェック(推奨)
# 同じディレクトリの*.onamae.txtファイルを自動検出
./cert_expiry.sh

# カスタムお名前.com形式ファイルを使用
./cert_expiry.sh my_zone.onamae.txt

# BINDゾーンファイルを使用
./cert_expiry.sh my_zone.zone

# 複数のファイルを指定(同じフォーマット)
./cert_expiry.sh zone1.onamae.txt zone2.onamae.txt
./cert_expiry.sh zone1.zone zone2.zone

# ヘルプ表示
./cert_expiry.sh --help

# バージョン表示
./cert_expiry.sh --version

確認内容

  • FQDN: ホスト名
  • DNS_Type: DNSレコードタイプ(A, AAAA, CNAME)
  • IPv4/IPv6: IPアドレス情報
  • 証明書ブランド: 証明書発行者
  • Common_Name: 証明書のCommon Name
  • SNI: Server Name Indication
  • 証明書有効期限: 期限日と残り日数
  • HTTPS通信可否: 接続状況

出力ファイル

CSV結果ファイル

  • FQDN: ホスト名
  • DNS_Type: DNSレコードタイプ(A, AAAA, CNAME)
  • IPv4: IPv4アドレス
  • IPv6: IPv6アドレス
  • Certificate_Brand: 証明書ブランド
  • Common_Name: 証明書のCommon Name
  • SNI: Server Name Indication
  • Expiry_Date: 有効期限
  • Days_Until_Expiry: 残り日数
  • HTTPS_Status: HTTPS接続状況
  • Notes: 備考

結果ディレクトリ

  • cert_expiry_YYYYMMDD_HHMMSS/

前提条件

必要なツール

  • OpenSSL: SSL証明書チェックツール(macOS標準搭載)
  • dig: DNS解決コマンド(macOS標準搭載)

必要なファイル

  • お名前.com形式ファイル: ホスト情報を含むファイル(デフォルト: 同じディレクトリの*.onamae.txtファイルを自動検出)
  • ファイル形式: お名前.comのDNSレコード設定完了通知メールフォーマット

注意事項

  • 大量のホストをチェックするため、完了まで時間がかかる場合があります
  • サーバーに負荷をかけないよう適切な間隔を設けています

対応フォーマット

お名前.com形式

  • お名前.comのDNSレコード設定完了通知メールフォーマット
  • ファイル拡張子: .onamae.txt(推奨)
  • 自動検出対応

BINDゾーンファイル(RFC 1035準拠)

  • 標準的なBINDゾーンファイル形式
  • ファイル拡張子: .zone(推奨)
  • 対応ディレクティブ:
    • $ORIGIN: ゾーンの起点ドメイン
    • $TTL: デフォルトTTL値
    • $GENERATE: レコード自動生成(範囲: 1-10000)
  • 対応レコードタイプ: A、AAAA、CNAME
  • @ 表記対応
  • 相対名対応(警告を表示しつつ処理)
  • 絶対名対応(末尾ドット自動除去)

制約事項

BINDゾーンファイル

  • 未対応: $INCLUDE ディレクティブ
  • 相対名: 末尾にドットがない名前は警告を表示します。$ORIGINが設定されている場合は完全修飾名に変換されます
  • $GENERATE: 展開範囲は1-10000に制限されています
  • TTL単位略記: パース可能ですが、値は使用しません(例:1h1dなど)

トラブルシューティング

権限エラーの場合

chmod +x cert_expiry.sh

接続エラーが多い場合

  • ネットワーク環境を確認
  • ファイアウォール設定を確認
  • 対象ホストの稼働状況を確認

DNSレコードファイルが見つからない場合

# 同じディレクトリのファイルを確認
ls -la *.onamae.txt *.zone

# カスタムファイルを指定
./cert_expiry.sh /path/to/your/zone.onamae.txt
./cert_expiry.sh /path/to/your/zone.zone

# 複数のファイルを指定
./cert_expiry.sh zone1.onamae.txt zone2.onamae.txt
./cert_expiry.sh zone1.zone zone2.zone

ライセンス

MIT License - 詳細は LICENSE ファイルを参照してください。

貢献

このプロジェクトへの貢献を歓迎します。詳細は CONTRIBUTING.md を参照してください。

About

DNSレコードファイルから抽出したホストのTLS証明書有効期限を確認するスクリプト

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages