昨日、2011年1月9日、ウチのブログが夜9時ごろから11時過ぎまで3時間程度ダウンしてしまいました。原因はSSL通信の為にWebやメールサービスに設定していた証明書の有効期限が切れてしまった為。
ちょうど1年前の2010年1月9日にこのサーバーを構築、設定したのですが、その際に有効期限を1年間に設定していた為、稼働開始から1年となった昨日、期限切れを迎えてしまいました。
インターネットへの公開用Webページやブログサイトは暗号化する必要は無いのですが、管理用のVPNやメンバー用の一部Webページはセキュリティを考慮してSSLで通信を保護しており、その他目に設定していた証明書が無効になった為にWebサービス(Apache)がエラーを出力して停止していました。たとえ一部のサイトでのみ証明書を使う設定になっていても、その有効な証明書が見つからない場合Apache全体が正常に動作せず、SSL通信を要求しない他のサイトも公開されない状態になってしまいます。
実際に期限がきれた時刻は深夜(早朝)の1時ごろで、その後も正常に動作していたのであまり気にしていなかったのですが、休日出勤の後で10.6.6アップデートをリモートから適用したところ全く応答がなくなってしまいました。前述の通り、リモートからの管理にVPNを用いている為接続出来なくなってしまい手も足も出せない状態に陥ってしまったのです。
幸い、サーバーが設置されている実家に連絡した所、父親がLANに接続された端末からvncクライアントでサーバーの画面を操作する事に成功。電話やSkypeで試行錯誤しながらも新しい証明書の作成、信頼設定と、サーバー環境設定及びWebサーバーに読み込ませる証明書の設定を変更してどうにか復旧に成功。
結果、今もこの様に皆さんにブログをご覧頂いたり、投稿をする事が出来ています。有難うございます。
過去にもFreeBSDのサーバーを管理した経験が有り、WebやメールサーバーをSSLの暗号化設定を含めて行った事がありましたが、Mac OS X Serverで同様のシチュエーションに遭遇するのが初めてだった為かなり戸惑いました。幸いサーバー管理アプリを使って出力されているエラーログを参照する事で原因の特定が出来たので良かったわけですが….。
正直なところ様々なサーバーに対してそれぞれどの証明書を使うか設定しなければならない為、今でもいくつかのサービスからエラーが出力されており、今度の週末には実家に完全復旧をしなければと思っています。その際に今回のトラブルシューティングについてまとめ、BlueDiamond
Web.で紹介してみようと思います。