続 カッコの付け方

AWSを始めとしたクラウドコンピューティング全般と、唯一神emacsにおける()の付け方についてだらだら書きます

GASでドメインやSSLの有効期限を見張る

GAS (Google Apps Scripts)を使ってドメインSSL証明書の失効にたいして、なんとかしてみます。

GASとは

Google Apps Scripts とは、要はGoogle Apps版のVBAです。ですが、VBAと違うところは、Googleのサーバーで実行されるという点です。この点と、時間で実行(Cronみたいなもの)が出来ます。つまり、定期実行のためだけにいちいちサーバを建てたり、そのあとのお守りとかいらないという、クール!

経緯

もともと統合監視ツールであるzabbixとかでやろうと思ってましたが、SSL証明書はいいのですが、ドメインが結構たいへんです。whoisを使えばいいのはわかるのですが、各国のレジストラがバラバラでwhoisを設定しているせいか、whois取得ライブラリが各LL言語あるものの、お名前.comはたいてい対応していません(RFCとかないのかね?)。この程度の瑣末な話しなら、モンキーパッチでなんとでもなるのですが、それすらダルいと思った。

GASでやるメリット

  • 設定が楽、非エンジニアでもできる
  • サーバにログインして設定するより、スプレッドシートのほうが楽で、一目瞭然

もちろんスプレッドシートをご操作で全消しされたらOutですが、まあメリットのほうが大きいかと。全消しからのデータ復元は、ファイル -> 変更履歴を表示から戻せるし、GAS側でチェックを入れることも可能

で、こんなかんじに

コードはgistに置きました。なんのヒネリもないしょうもないプログラムです。

GASでドメイン/SSL証明書の有効期限を確認

画面はこんな感じ

  • C列: 失効日
  • E列: メアド、カンマ区切り
  • F列: 計算式 =rounddown(<対象Cell>-NOW())

他の列はプログラム上の意味はありません。

f:id:iga-ninja:20150124231003p:plain

定時実行のトリガーを設定

ここがGASのいいところ、サーバ実行なので、定時実行が出来ます。スクリプトエディタの画面から、下記の時計っぽいアイコンをクリック。 あとは実行する関数を指定して終わり。

f:id:iga-ninja:20150124231253p:plain

f:id:iga-ninja:20150124231307p:plain

注意!とりあえず1回メール飛ばしといて!

GASは他サービスへ連携する時に必ず認証が必要だと言ってきます。この場合GASでスプレッドシートを動かす認証と、GASからメールを飛ばす認証の2つが聞かれるので、わざと期限切れにして、1回メールを飛ばす必要があるはずです。

GASの時間実行について

開始の時間は1時間単位までしか指定できないので、実際にGASが走る分単位まで指定出来ません。また、GASの処理速度もGoogleのサーバの機嫌次第で早くなったり遅くなったりします。その点は考慮の上、GASを使いましょう。

また、時間実行で失敗やエラーメッセージが出た場合は、すぐではないですが、こういう理由でコケましたというメールが飛んできます。ここは関心しました、エライ!