WebサービスをSSL/TLS化するのが当たり前になってきています。そんな中とあって、証明書の有効期限を管理するのが問題になっています。有効期限が切れると接続できなくなる(警告が出る)のでビジネス的に大きな問題になるでしょう。 そこで定期的にチェックしなければならない訳ですが、opensslコマンドを使って確認するのも面倒です。そこで使ってみたいのがcertです。

certの使い方

certの実行例です。発行者、有効期限、ドメイン名などが分かります。

$ go run cmd/cert/main.go www.moongift.jp
DomainName: www.moongift.jp
Issuer:     Let's Encrypt
NotBefore:  2017/09/30 09:34:21
NotAfter:   2017/12/29 09:34:21
CommonName: www.moongift.jp
SANs:       [www.moongift.jp]
Error:      

出力フォーマットは標準出力の他、MarkdownやJSONが選択できます。

$ go run cmd/cert/main.go -f md www.moongift.jp
DomainName | Issuer | NotBefore | NotAfter | CN | SANs | Error
--- | --- | --- | --- | --- | --- | ---
www.moongift.jp | Let's Encrypt | 2017/09/30 09:34:21 | 2017/12/29 09:34:21 | www.moongift.jp | www.moongift.jp<br /> | 

certが行っているのはOpenSSLで出力できる内容をフィルタしたものになるでしょう。コマンドを覚えておけば毎回打つこともできますが、自動化したり省力化する上ではcertを使った手軽そうです。複数ドメイン名を渡すこともできるのでMarkdownでまとめてレポートするといった用途にもぴったりです。

certはGo製のオープンソース・ソフトウェア(MIT License)です。

genkiroid/cert: Get server cert information.