現在位置: ホーム / みらくるブログ / 【ゼロから始める MIRACLE LINUX】Wordpress サーバーに導入した SSL証明書を監視をしてみた

【ゼロから始める MIRACLE LINUX】Wordpress サーバーに導入した SSL証明書を監視をしてみた

前回の記事で WordPress をインストールしたWebサーバーに導入した証明書が期限切れになる前に気付けるようにMIRACLE ZBX で監視設定を行いました!

 

今回設定を行ったのは、以下の図で赤枠で囲っている箇所になります。

はじめに

SSL証明書の監視とは?

WordPress サーバーにSSL証明書の導入を行いましたが、一度証明書を入れただけで完結ではありません。証明書には期限が設定されており、期限切れの証明書を使っているとサイトへのアクセス時に警告が表示されたり、本来の目的である暗号化通信ができなくなってしまいます。そのため、証明書の有効期限が切れる前に新しい証明書に入れ替えが必要となりますが、うっかり有効期限が切れていた...といったケースも多くあります。今回はOSSのサーバー監視ツールであるMIRACLE ZBX を用いて証明書の期限を監視して期限切れを事前に検知するための設定をおこないます。

使用環境

  • MIRACLE LINUX 8.4 (GUIインストール)
  • MIRACLE ZBX 6.0

MIRACLE LINUX とは

まず最初に、今回使用したディストリビューションである MIRACLE LINUXの紹介をします!
MIRACLE LINUX とはサイバートラスト社が開発を行っている RHEL の派生ディストリビューション(クローン)です。
これまでは、有償ライセンスでの提供を行っていましたが、MIRACLE LINUX 8.4 からはライセンス費用を無償で公開しています!
このブログで少しでもMIRACLE LINUX に興味を持っていただけたらぜひ一度インストールをしてみてください!

MIRACLE LINUX 8.4 のインストールはこちらの記事でも紹介しています!

MIRACLE ZBX とは

MIRACLE ZBX とはサーバーの状態を監視して、異常などが発生した際に通知や対処を自動的におこなうためのサーバー監視ツールです。
Zabbix LLCがOSSとして開発を行っているZabbixのソースコードにサイバートラスト独自の機能追加、バグ修正を行い、各 OS 用にパッケージング、テストを行っています。

こちらのページ
からパッケージのダウンロードが可能です。

MIRACLE ZBX のインストール

WordPress をインストールしたサーバーとは別にMIRACLE LINUX 8.4をインストールした環境を用意します。今回はGUIインストールを行い ZBX 環境を作成しました。
その後、MIRACLE ZBX のインストール記事を参照し MIRACLE ZBX のインストールを行います。

MIRACLE ZBX エージェントのインストール

WordPress をインストールしているサーバーに監視を行うため、ZBX エージェントのインストールを行います。エージェントのインストール方法はこちらの記事を参照して行います。

MIRACLE ZBX の設定

MIRACLE ZBX へのログイン

MIRACLE ZBX の設定がインストールが完了したら監視項目を設定していきます。
http://IPアドレス/zabbix” にアクセスし、管理画面にログインを行います。
ログインする際にはアイテムの追加が可能な権限を持っているユーザーでログインを行ってください。
アイテムの追加はホストなどの追加・変更権限のある管理者ユーザーが実施できます。
今回はZBX のデフォルトのユーザーで、管理者権限を持つ「Admin」ユーザーでログインをしています。
※本番環境等の運用時には適切にユーザーの作成、権限設定をしてください。

ユーザー名とパスワードを入力し、ログインすると以下のような管理画面が表示されます。

ホストの作成

ホストとは管理対象を示しています。

今回は、ホスト名を「WordPress」、グループを「WordPress」として作成を行いました。
ホスト名とグループに関しては任意の文字列を入力してもらえたら問題ありません。
ただし、ホスト名は Agent の conf ファイルに記載したものと名前を合わせてください。

ホストの追加が完了したら以下のように「WordPress」というホストが追加され、ZBX という部分が緑色になることが確認できます。

監視アイテムの作成

続いて、アイテムの作成を行っていきます。
アイテムとは監視する項目を指しています。今回のケースでは"証明書の有効期限までの日数"を定期的に取得するアイテムを作成します。

まず、「ホスト」から「アイテム」をクリックします。

次に「アイテム」を選択し、「アイテムの作成」をクリックしアイテムの追加を行います。
今回は以下の内容でアイテムを追加しました。
キーで指定しているのは後で説明する ”check_ssl_cert” というスクリプトを呼ぶものとなっています。
ここに記載していない項目はデフォルトで設定しました。

名前 WordPress-check
キー check_ssl_cert[{HOST.CONN},443]
監視間隔 1440

外部スクリプトの説明

期限確認のために使用しているスクリプトは以下になります。
行っている動作としては、まずWordPress サーバーへアクセスし、openssl コマンドを用いて証明書の情報を取得を行います。そしてその取得した情報と現在の日付からあと何日期限が残っているのかの数値を返すものとなります。

#!/bin/sh
host=$1
port=$2

output=`openssl s_client -connect $host:$port -showcerts </dev/null 2>/dev/null |
sed -n '/BEGIN CERTIFICATE/,/END CERT/p' |
openssl x509 -text 2>/dev/null |
sed -n 's/ *Not After : *//p'`

end=`date '+%s' --date "$output"`
now=`date '+%s'`
printf "%.0f\n" $(echo "scale=2; ( $end- $now)/(60*60*24)" | bc)

トリガーの設定

トリガーとはアイテムで取得した値に対してしきい値を設定し、そのしきい値を越えた場合に障害と判断し通知する設定です。
今回のケースでは作成したアイテムで取得した値が30日未満になった場合に障害を発生させます。

「トリガー」タブを選択し「トリガーの作成」をクリックし、トリガーの追加を行います。
条件式については以下の内容をコピーしてご利用ください。

名前 ssl certificate expires 30 days ago
条件書式 last(/WordPress/check_ssl_cert[{HOST.CONN},443])<=30
復旧条件 last(/WordPress/check_ssl_cert[{HOST.CONN},443])>=31

動作結果

最新のデータを確認すると以下の画面のように取得した日数が表示されます。
今回は証明書の有効期限まで30日以内になっているものを設定しています。
以下の画像の最新の値という箇所を確認すると"19"となっていることが分かります。

最新の値が30以下になっていることが確認出来たら、障害として認識されるか確認をします。
障害タブを選択すると、以下の画像のように障害として表示されていることが確認できます。

障害が表示されることが確認出来たら、次に復旧動作が問題なく行えるか確認するため有効期限が切れるまでに31日以上期間がある証明書に切り替えます。
証明書を切り替えると以下の画像のように ”解決済み” のステータスに切り替わることが確認できます。

MIRACLE LINUX 関連ページ

MIRACLE LINUX に興味を持っていただけたら、ぜひ以下のページも合わせてご確認ください!

 

当記事に記載している設定、スクリプトは動作を保証するものではありません。
詳細に関しては以下のページをご参照ください。
https://www.cybertrust.co.jp/corporate/terms-of-use.html

タグ: