Azure Key Vaultで証明書の有効期限が切れる前に警告メールを送るTech TIPS

電子証明書の有効期限が切れてしまうと、Webサイト閲覧や認証の際に深刻なエラーが生じてしまう。Azure Key Vaultの場合、証明書の有効期限が切れる前にその警告メールを送ることができる。AzureポータルとAzure CLIでの設定方法を紹介する。

» 2023年12月06日 05時00分 公開
[島田広道デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

Azure Key Vaultで証明書の有効期限が切れる前に警告メールを送る

対象:Azure Key Vault(キーコンテナ)、Azureポータル、Azure CLI


 システム内に組み込まれている「電子証明書」の有効期限が切れてしまったことに気付かず、しかも余所(よそ)から指摘されて慌てて対処することになる、という悪夢におびえているITシステムの管理者や運用担当者も多いのではないだろうか。

 有効期限が切れると、Webサイト閲覧時にユーザーのブラウザ上でエラーが発生したり、証明書を使った認証で失敗したり、と深刻な問題が生じてしまう。

 こうした危険性は、対象の証明書が手動更新である限り、Azureで証明書を管理できるサービス「Key Vault」などにも当てはまる問題である。

 ただ、Key Vaultには格納中の証明書の有効期限が間近になると、メールで警告メッセージを送ってくれる機能がある。これを自分のメールアドレス宛てに設定しておけば、有効期限に気付きやすくなる。活用しない手はない。

 そこで本Tech TIPSでは、AzureポータルおよびAzure CLIを使って、この警告メールの送信先メールアドレスを追加/削除/確認する方法を紹介する。対象は、Azureと連携していない認証局(認証機関、CA)から発行された証明書とする。

■執筆時の各種ツール/APIのバージョン

  • Azure CLI: Ver. 2.54.0

【ポータル】Key Vault証明書の有効期限前に警告メールを自動送信する

 Key Vaultに格納した証明書の有効期限が近づいた時、自動で警告メールが送信されるようにするには、その送信先メールアドレスを設定しておく必要がある。また、その送信時期についても、デフォルトの設定(後述)のままでよいか確認しておいた方がよい。

●Key Vault証明書の警告メールの送信先メールアドレスを追加する

 警告メールの送信先メールアドレスは、以下のようにAzureポータルを操作することで追加できる。これはKey Vault内の全証明書で共通の設定だ。

【ポータル】Key Vault証明書の警告メール送信先を追加する(1/2) 【ポータル】Key Vault証明書の警告メール送信先を追加する(1/2)
【ポータル】Key Vault証明書の警告メール送信先を追加する(2/2) 【ポータル】Key Vault証明書の警告メール送信先を追加する(2/2)

■操作手順

  1. Azureポータルで[キーコンテナ]−[<対象のKey Vault名>]を開く
  2. 左側メニューの「オブジェクト」欄の[証明書]をクリック
  3. 右ペインに証明書一覧が表示されたら、その上部メニューの右から2番目の[証明書の連絡先]をクリック
  4. ウィンドウ右端に「証明書の連絡先」ブレードが現れるので、「電子メール」欄の空欄に送信先メールアドレスを記入
  5. ブレード内の上部メニューにある[保存]をクリック

 これで警告メールの送信先メールアドレスが登録される。複数のメールアドレスを追加したい場合は、上記の操作を繰り返せばよい。

●Key Vault証明書の警告メール送信時期を確認/設定する

 証明書の有効期限がどれくらい間近になったら警告メールを送信するか、という時期は、デフォルトで「有効期間の80%を過ぎた時点」に設定される。例えば、対象の証明書の有効期間が1年=12カ月=365日の場合、365日×80%=292日が過ぎた(残り73日)時点で警告メールが送信される、ということだ。

 この送信時期の設定は、証明書ごとに独立している。Azureポータルでその設定を確認あるいは変更するには、まず対象の証明書の「発行ポリシー」設定ページを開く必要がある。

【ポータル】Key Vault証明書の「発行ポリシー」ページを開く(1/2) 【ポータル】Key Vault証明書の「発行ポリシー」ページを開く(1/2)
【ポータル】Key Vault証明書の「発行ポリシー」ページを開く(2/2) 【ポータル】Key Vault証明書の「発行ポリシー」ページを開く(2/2)

■操作手順

  1. Azureポータルで[キーコンテナ]−[<対象のKey Vault名>]を開く
  2. 左側メニューの「オブジェクト」欄の[証明書]をクリック
  3. 右ペインで対象の証明書をクリック
  4. 証明書のバージョン一覧が表示されたら、上部メニューの[発行ポリシー]をクリック

 「発行ポリシー」設定ページが表示されたら、[有効期間のアクションタイプ]プルダウンリストに注目する。前述の通り、デフォルトでは以下のスクリーンショットのように「有効期間の80%を過ぎたら警告メールを送信」となっているはずだ。

Key Vault証明書の警告メール送信時期を「有効期間に対する割合(%)」で設定する 【ポータル】Key Vault証明書の警告メール送信時期を「有効期間に対する割合(%)」で設定する

 これを「残り30日で期限切れになるタイミングで警告メールを送信」としたい場合は、[有効期間のアクションタイプ]プルダウンリストで[有効期限の残りが指定された日数になったら、すべての連絡先にメールを送信する]の方を選ぶ。その後に、すぐ下の[有効期限までの日数]欄に「30」と記入する。

Key Vault証明書の警告メール送信時期を「有効期限までの日数」で設定する 【ポータル】Key Vault証明書の警告メール送信時期を「有効期限までの日数」で設定する

 以上で設定は完了だ。

●証明書の有効期限に近づくと送信されるメールの例

 上記で設定した時期(=証明書の有効期限が間近)になると、登録しておいた送信先メールアドレス宛てに以下のようなメッセージが届く。

指定のメールアドレスに届くKey Vault証明書の有効期限の警告メール(例) 指定のメールアドレスに届くKey Vault証明書の有効期限の警告メール(例)

 このメールを受信したら、併記されているThumbprint(母印)などから対象の証明書を特定し、更新の手続きを始めればよい。

【ポータル】Key Vault証明書の警告メール送信先を削除/変更する

 登録した警告メールの送信先メールアドレスは、以下のようにAzureポータルを操作することで削除できる。

【ポータル】Key Vault証明書の警告メール送信先を削除する(1/2) 【ポータル】Key Vault証明書の警告メール送信先を削除する(1/2)
【ポータル】Key Vault証明書の警告メール送信先を削除する(2/2) 【ポータル】Key Vault証明書の警告メール送信先を削除する(2/2)

■操作手順

  1. Azureポータルで[キーコンテナ]−[<対象のKey Vault名>]−[証明書]−[証明書の連絡先]とクリックして、「証明書の連絡先」ブレードを開く
  2. 電子メール」欄で対象のメールアドレスを探し、見つけたら右クリック
  3. 表示されたメニューの[削除]をクリック
  4. ブレード内の上部メニューにある[保存]をクリック

 既存のメールアドレスを変更するには、上記の(2)でそのメールアドレスを(左)クリックして編集してから[保存]をクリックすればよい。

【CLI】Key Vault証明書の有効期限前に警告メールを自動送信する

 ここからAzure CLIでAzureのリソースを操作していく。あらかじめコマンドプロンプトでAzureへのログイン(az loginコマンド)とサブスクリプションの選択(az account set -sコマンド)をしておくこと。

 Azureポータルと同様にAzure CLIでも、有効期限の警告メールが自動で送信されるようにするには、送信先メールアドレスと送信時期の2つを設定する必要がある。

●Key Vault証明書の警告メールの送信先メールアドレスを追加する

 コマンドラインでKey Vault証明書の警告メール送信先を追加するには、以下のように「az keyvault certificate contact add」コマンドを実行する。

az keyvault certificate contact add --vault-name <Key Vault名> --email <送信先メールアドレス>

【CLI】Key Vault証明書の警告メールの送信先メールアドレスを追加する
※Microsoftのレファレンス: az keyvault certificate contact add

 このとき、「--name <連絡先の名称>」というオプションを指定すると、対象のメールアドレスが誰のものなのかすぐ分かるように、そのフルネームが併記可能だ。

 さらに、「--phone <電話番号>」というオプションを指定すると、連絡先の電話番号も併記できる。ただし、この電話番号に何か通知するという機能はなく、単に手動で連絡するためのメモという位置付けのようだ。

●Key Vault証明書の警告メール送信時期を変更する

 警告メールの送信時期をデフォルトの「有効期間の80%を過ぎた時点」から変更したい場合は、以下のように「az keyvault certificate set-attributes」コマンドを実行する。

az keyvault certificate set-attributes --vault-name <Key Vault名> -n <証明書の名称> --policy "{\"action\":{\"actionType\":\"EmailContacts\"},\"trigger\":{\"daysBeforeExpiry\":null,\"lifetimePercentage\":<有効期間の割合>}}"

【CLI】Key Vault証明書の警告メール送信時期を「有効期間に対する割合(%)」で設定する
※Microsoftのレファレンス: az keyvault certificate set-attributes

 ここでは、Windows OSのコマンドプロンプトで実行することを想定して、「--policy」で指定しているJSONデータ内のダブルクオート(")をバックスラッシュ(\)でエスケープしている。

 例えば有効期間の90%を過ぎた時点で送信したいなら、JSONデータ内の「lifetimePercentage」キーに「90」、「daysBeforeExpiry」キーに「null」という値をそれぞれ指定すればよい。

 一方、「有効期限までの日数」で指定したい場合は、以下のようにJSONデータを指定する必要がある。

az keyvault certificate set-attributes --vault-name <Key Vault名> -n <証明書の名称> --policy "{\"action\":{\"actionType\":\"EmailContacts\"},\"trigger\":{\"daysBeforeExpiry\":<有効期限までの日数>,\"lifetimePercentage\":null}}"

【CLI】Key Vault証明書の警告メール送信時期を「有効期限までの日数」で設定する

 例えば有効期限の30日前に送信したいなら、JSONデータ内の「daysBeforeExpiry」キーに「30」、「lifetimePercentage」キーに「null」という値をそれぞれ指定すればよい。

●Key Vault証明書の警告メール送信時期を確認する

 変更した警告メールの送信時期を確認するには、以下のように「az keyvault certificate show」コマンドを実行する。

az keyvault certificate show --vault-name <Key Vault名> -n <証明書の名称> --query "policy.lifetimeActions" -o jsonc

【CLI】Key Vault証明書の警告メール送信時期を「有効期間に対する割合(%)」で設定する
※Microsoftのレファレンス: az keyvault certificate show

 デフォルトの設定のままなら、以下のように表示されるはずだ。

【CLI】Key Vault証明書の警告メール送信時期を表示させた例 【CLI】Key Vault証明書の警告メール送信時期を表示させた例

【CLI】Key Vault証明書の警告メール送信先を削除する

 コマンドラインでKey Vault証明書の警告メール送信先を削除するには、以下のように「az keyvault certificate contact delete」コマンドを実行する。

az keyvault certificate contact delete --vault-name <Key Vault名> --email <送信先メールアドレス>

【CLI】Key Vault証明書の警告メール送信先を削除する
※Microsoftのレファレンス: az keyvault certificate contact delete

 このとき、識別のために指定すべきはメールアドレスであり、前述の「--name」オプションで指定した「連絡先の名称」(フルネーム)の方ではない。

【CLI】Key Vault証明書の警告メール送信先メールアドレスを確認する

 コマンドラインでKey Vault証明書の警告メール送信先の登録済みメールアドレスを確認するには、以下のように「az keyvault certificate contact list」コマンドを実行する。

az keyvault certificate contact list --vault-name <Key Vault名> -o jsonc

【CLI】Key Vault証明書の警告メール送信先の登録済み一覧を表示する
※Microsoftのレファレンス: az keyvault certificate contact list

 例えば、2つの連絡先(メールアドレス)を追加してから上記のコマンドラインを実行すると、以下のようにリストアップされる。

【CLI】Key Vault証明書の警告メール送信先メールアドレス一覧を表示させた例 【CLI】Key Vault証明書の警告メール送信先メールアドレス一覧を表示させた例
Azureポータルでは確認できない「名前」「電話番号」も表示できる。

「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。