Let's try 外形監視!! -SSL証明書チェック 編-

運営されているサイトやサービスでSSL証明書を使っていると思いますが、有効期限前に通知欲しいですよね？New Relic Syntheticを使ってSSL証明書の期限切れ・有効性を簡単かつ定期的にチェックする方法を解説します！

## はじめに
New Relic のSyntheticは、定期的にさまざまなエリアから状況を確認することが可能な外形監視の機能です。
ユーザがアクセスするWebサイトにおいて、Webサイトのセキュリティ向上やアクセス解析の精度向上、通信の効率化や信頼性の向上など様々な観点からHTTPS通信はほぼ必須です。そのためSSL証明書を導入するケースが増えていますが、セキュリティの観点から有効期限が設けられており、運用の中で有効なSSL証明書に更新し続けることが重要です。
この記事ではこのSSL証明書の有効性を定期的にチェックすることができる、Syntheticの機能の一つ「Certificate Check監視(SSL証明書監視)」について解説したいと思います。

:::note info
外形監視の便利情報に関してはこちらのドキュメントもご参照ください
[Syntheticモニタリング(外型監視)を利用した際に便利なドキュメント](https://qiita.com/khara-nrkk/items/32bcd77134391db7b582)
:::


## Certificate Check 監視でできること
対象とするサイトのSSL証明書の期限が切れていないかをチェックすることが可能になります。
Monitor作成時に「有効期限何日前に通知をするか」設定することができるので、期限切れ前に余裕を持って更新手続きを進められるようになります。
ちなみに[Ping監視](https://qiita.com/ume67026265/items/7036b332aa9371497e87)でもSSL証明書監視が可能ですが、こちらは有効な証明書かを確認するのみなので、期限数日前に通知を行いたいときはCertificate Check Monitorをお使いください。

## Certificate Check 監視の設定方法
実際にNew Relic上で設定してみましょう

(1)Synthetic Monitor をクリック

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/65ac8f69-497f-43d9-f23b-5b2ac1fcc358.png" width=50%>

(2)Monitor -> Create monitor をクリック

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/7bbae3de-19c3-cf77-a149-ebea6ad5990a.png" width=80%>

(3)SSL Cirtificate expiration -Certificate Check- を選択

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/3e1f8dfa-410e-810b-b708-552a7bed0b3b.png" width=80%>

(4)モニター名やチェック対象となるドメイン、期限よりどれくらい前に通知を行いたいかを指定して Select locationsをクリック
必要に応じてチェック期間(Period)やApdexの目標値などのオプション設定を追加する事も可能です

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/905982de-2327-1ec4-9304-b70c27994b6a.png" width=80%>


(5)チェックを行うロケーションを選択し「Save monitor」をクリック
ロケーションはグローバルに用意された場所から複数選択することが可能です。
社内システムなどインターネットに直接アクセスできないクローズドな環境で実行したい場合にも、プライベートロケーションに[Job Manager](https://docs.newrelic.com/jp/docs/synthetics/synthetic-monitoring/private-locations/private-locations-overview-monitor-internal-sites-add-new-locations/)を置くことでチェックが可能です(Job Managerに関しては別記事で紹介します)

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/8d40a6c7-db80-acf7-4d6f-5c63567a4b06.png" width=80%>


これだけの設定でしばらくするとチェック結果が表示されるようになります！！
簡単！！

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/2d7f4211-5af1-0e03-25a7-155cb0ae6bbb.png" width=80%>

もし証明書の期日が「Days remaining until expiration」で設定した日にちを過ぎた場合、チェックは「失敗」になるのですぐにわかるようになっています
わかりやすい！

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/03085f8e-8c88-4905-c3cc-f9ac6fb0ab44.png" width=80%>



## Synthetic の実行回数カウント
画面内に表示される「Available synthetic monitor checks」に関して補足です。
New Relicでは契約しているプランによって、Synthetic checkの実行可能上限が異なります。(ただしPing監視はカウントされません)
この実行テストを行なっている環境は「Pro」エディションのため上限が100万チェック/月 になっています。
(エディションでの違いについてはこちらの[ドキュメント](https://docs.newrelic.com/jp/docs/synthetics/synthetic-monitoring/getting-started/monitor-limits/)になります)

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/e25e9b69-66d0-4767-d98e-1278353289c1.png" width=80%>

チェック数のカウント方法は簡単です
<B>1時間のチェック回数 x 24時間 x 30日 x エリア数</b> です
例えば 1時間に1回、日本のみでのチェックの場合、 1 x 24 x 30 x 1 = 720になります
今回のMonitorに関しては、1日1回のため、日本のみのチェックの場合は「30」になります。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/e198a048-86d1-a0f9-b692-e418a0bcc018.png" width=70%>

もし日本の他に追加で1箇所チェック場所を増やすと「60」になります。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/58dfdbfc-7c1e-ceee-d62b-ddd748cae64f.png" width=70%>

設定したMonitorの一月のチェック回数は「Esr.monthly checks for this monitor」に表示される数値で確認することが可能ですので、数値の根拠を知りたい場合は上記計算ロジックを思い出してください。

また「Checks scheduled this month」は他に設定しているMonitorがある場合、アカウント全体での実行回数が表示されます。
設定するMonitorのチェック数と合わせて上限に到達しないか確認してください。

## 結果を確認
作成したモニターはしばらくすると結果を確認することができるようになります

Resultsでは実行結果の推移を見ることができます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/56d07d11-f4f9-74d4-893d-c506d3adc956.png" width=80%>

それぞれの実行の詳細を見る場合には、timestampのリンクをクリックします。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/85ccb9da-a739-18d6-4aeb-9f93a329f909.png" width=80%>

クリックするとさらに詳細にドリルダウンすることができます

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/bd642cd7-1ebe-8ebc-7c4f-5fdccdc6de48.png" width=80%>

実行した際のHTTPステータスコード、 タイミング情報 など、詳細なメトリクスを見ることができます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/20cb9dc0-3aea-9456-b0c8-8d7b56f43799.png" width=80%>

Resources ではHTTPステータスコード、 タイミング情報 、ロード時間など詳細なメトリクスを見ることができます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313446/de56283c-d782-2fd4-1583-6d2d2f72a93e.png" width=80%>

クリックしドリルダウンしていくと、Results と同様の詳細情報をResourcesからも確認することが可能です

SSL証明書のチェックがメインのメインのMonitorではありますが、それ以外のHTTPステータスコードやロード時間なども合わせて確認するこがも可能です。SSL証明書チェック以外の情報も活用してより良いサイト管理にお役立てください！



## まとめ
わざわざ自分たちでサーバを立てなくても、Syntheticを活用することでさまざまな拠点から定期的にチェックできるのはとても便利です！
設定も簡単なので是非SyntheticのCertificate Check監視をご活用ください！

:::note info
無料のアカウントで試してみよう！
[New Relic フリープランで始めるオブザーバビリティ！](https://qiita.com/ktst79/items/5ee74b34e6adb8a7a6fa)
:::
:::note info
[New Relic株式会社のQiita Organization](https://qiita.com/organizations/newrelic)では、
新機能を含む活用方法を公開していますので、ぜひフォローをお願いします。
:::

New Relic株式会社のAdvent Calendar 2024では、New Relicを使い始められたばかりの方、すでに熟達されているの方の活用Tips、アイディアまで、New Relicに関する知見を幅広く募集しています!

https://qiita.com/advent-calendar/2024/newrelic