New Relic Synthetic MonitoringでTLS/SSL証明書の有効期限を管理する

　今の時代もはや必須と言われるWebサービスにおけるTLS/SSLの導入。もしそのTLS/SSL証明書の有効期限が切れてしまったら、サービスはどうなってしまうでしょうか？確実なWebサービス運用のために、New Relicを使ってTLS/SSL証明書の有効期限管理を確実に行いましょう。

# WebサービスにおけるSSL/TLS
AWS Certificate ManagerやLet's Encryptなどの登場により無償で証明書が発行できるようになり、またHTTP/2の登場など、規格としてTLS/SSLでの暗号化通信が必須となっているものもあります。
　そんなTLS/SSL証明書には有効期限があります。有効期限をチェックしそのローテーション運用を確実のものにするのが、昨今のWebサービスにおいては非常に重要となっています。
 　もしTLS/SSL証明書の有効期限が切れてしまうと、下記のような深刻な状況になってしまいます。
## ユーザーエクスペリエンスへの影響
アクセスブロック: SSL証明書が無効または期限切れの場合、ブラウザは警告を表示し、サイトへのアクセスをブロックすることがあります。これにより、ユーザーはサイトを閲覧できなくなり、サービスに不信感を招く可能性があります。
信頼性の低下: SSLエラーは、訪問者にサイトの安全性が低いという印象を与え、結果的にブランドイメージを損なう可能性があります。ユーザーは個人情報やクレジットカード情報の入力やめ、サイトの利用を避けるかもしれません。
## ブランドイメージとビジネスへの影響
信頼性の喪失: SSLエラーは、訪問者にサイトの信頼性に対する疑念を抱かせ、ブランドイメージを損なう可能性があります。特にECサイトでは、SSL証明書がないと顧客は安心して購入手続きを進めることができません。
ビジネス機会の損失: 信頼性の低いサイトは、検索エンジンのランキングが下がる可能性があります。また、SSLエラーが表示されるサイトは、訪問者がすぐに離れてしまうため、ビジネス機会を大きく損失する可能性があります。
## コンプライアンスと法的要件
データ保護規制: 多くの国や地域で、個人情報や機密データを保護するための法規制が存在します。SSL証明書は、これらの規制に準拠するために不可欠な要素となります。
データ保護に関する要件: 例えばクレジットカード情報を扱うECサイトでは、PCI DSS（Payment Card Industry Data Security Standard）に準拠する必要があります。TLS/SSLの導入はその要件の一つです。

# TLS/SSL証明書が有効かどうかのチェックを行う方法
　皆さんはブラウザでTLS/SSL証明書の詳細を見たことはありますでしょうか。
![TLS/SSL証明書確認の一例](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86693/713db116-2b1f-40a7-b712-080ee572e4f1.png)
　大抵のブラウザでは、アドレスバーのところから閲覧中サイトにおけるTLS/SSL証明書の情報を確認することができます。もちろんその内容として有効期限の確認が可能です。

## 定期的な確認は自動化しましょう
　実際にTLS/SSL証明書が有効か、人の手でチェックするのは大変です。一つのドメインやそのサイトであれば問題とならないパターンもありますが、業務に追われて忘れてしまったり、頻度が高くないために担当者を引き継いだときにチェック業務が忘れられる、そういった事態も考えられます。
 　botなどでアクセスを行い、定期的にチェックを行う。そして、その結果有効期限が一定の期間より短くなったら通知を行う仕組みを構築する必要があります。

# Synthetic Monitoringで定期的なチェックを
　New Relic Synthetic Monitoring は、Webサイトの可用性とパフォーマンスを計測するための強力なツールです。中でも、SSL証明書の有効性チェックは重要な機能の一つです。
![New Relic Synthetic Monitoringの種別一覧](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86693/2f792b52-9d0b-45ed-abf3-b73b11a25775.png)

### 利用方法は簡単です。
- New RelicでSynthetic Monitoringから「Create monitor」をクリック
- 「SSL Certificate expiration」を選択
- ウィザードに沿って名前や観測対象、チェックするTLS/SSL証明書の残存期間などの設定を行う
- どこの都市から観測を行うかを設定する
- 有効な観測になっているかテスト実行を行う

このステップを踏んでいただくだけで、New RelicでのTLS/SSL証明書観測が開始されます。
### 更に有効期間残存が設定した日数を下回った場合に通知する設定も簡単に行っていただけます。

- 設定した観測のメニューにある「SETTINGS」から「Alert conditions」をクリック
- 「＋New alert condition」をクリックし、「Use guide mode」をクリック
- 一覧から「Synthetics」、「Synthetic monitors」をそれぞれクリックし、「Next」をクリック
- SSLチェックを設定したMonitor名にチェックを入れ「Failures」をクリックし「Next」をクリック
- チェック頻度から違反状態とする回数などをconditionとして設定
- 通知を行うたためのPolicyやWorkflowと紐づけて完了

例としてSlackに通知する設定を行うと、こういった形で通知が届きます。
![Slack通知サンプル](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86693/38a3ef62-aa84-4c90-a6a7-32d15dc3cc71.png)

　AWS Certificate ManagerやLet's Encryptは自動更新の仕組みなどもありますので、例えば7日間に設定しておいて、普段は自動更新が行われ、更新が何らかのエラーとなった場合に通知するといったような仕組みをこれで構築できます。OV/EV証明書など、実在性をもとに契約の上で更新されるTLS/SSL証明書は、例えば30日間などに設定いただいて、その契約更新に間に合うように設定いただくなども考えられます。

 # まとめ
 サービスのアプリケーション動作状況だけでなく、こういった細かいところについてもNew Relicは観測・監視・発報を行っていただくことができます。Webサービスの機会損失を最小限にしていただくためにも、ぜひお試しください。

 　New Relicでは、**新しい機能やその活用方法**について、QiitaやXで発信しています！
**無料でアカウント作成**も可能なのでぜひお試しください！

:::note info
New Relic株式会社の[X(旧Twitter)](https://x.com/NewRelicJapan) や [Qiita OrganizationOrganization](https://qiita.com/organizations/newrelic)では、
新機能を含む活用方法を公開していますので、ぜひフォローをお願いします。
:::

:::note info
無料のアカウントで試してみよう！
[New Relic フリープランで始めるオブザーバビリティ！](https://qiita.com/ktst79/items/5ee74b34e6adb8a7a6fa)
:::
[![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/535230/66d6a010-e4fe-4004-a09b-c01eaad5a614.png)](https://newrelic.com/jp/contact-sales)