UPKI 証明書の発行手順
(登録担当者向け)

UPKI の登録担当者で,DNS・ACME・Azure にはあまり詳しくない方が,ACME Conductor を使って 証明書を発行するまでの手順を,最初から順に説明します.仕組みの詳しい説明や設定の書き方は,運用担当者向けの アカウントごとに発行範囲が決まる CA の運用ガイドにあります. このページは,そこに書かれた手順を初めての方向けに言い換えたものです.

この文書の対象と,終わったときの状態

ACME Conductor の画面には,画面上部のバーに 日本語 / English の切り替えがあります.このページでは日本語表示の名前で説明します.

全体の流れ(1 画面で)

#何をするどこで誰が
1ホスト名を決め,前提を確かめる利用者との打ち合わせ登録担当者
2申請用のファイル(TSV)を作るUPKI TSV 作成ツール登録担当者
3TSV を提出し,審査後に EAB を受け取るUPKI 証明書発行支援システム登録担当者
4DNS に CNAME を設定してもらうDNS の管理画面DNS の管理者(自分でなければ依頼)
5発行ポリシーを用意する(初回か,条件が違うときだけ)ACME Conductor の画面登録担当者
6証明書(target)を無効の状態で追加するACME Conductor の画面登録担当者
7EAB を登録し,発行できたか確かめるACME Conductor の画面登録担当者

手順 3 の審査を待っている間に,手順 4 を進めておけます.手順 5 以降は,EAB を受け取り,DNS の設定を確認できてから行います.

はじめに知っておくこと

事前に用意するもの

手順

手順 1. ホスト名を決め,前提を確かめる

目的: 申請する名前の一覧を確定します.後から変えると UPKI 側で手続きがやり直しになるので,最初に慎重に決めます.

操作

  1. 利用者と相談して,メインのホスト名(UPKI の「利用管理者 FQDN」,証明書の CN になる名前)を 1 つ決めます.
  2. 追加のホスト名(UPKI では dNSName)を決めます.メインを含めて最大 8 個です.
  3. * を使う名前(ワイルドカード)は使いません.
  4. すべての名前が,デプロイ担当者から聞いた「許可するドメイン」の下にあるか確認します.外れているときは,デプロイ担当者に設定の変更を頼みます(GUI からは変えられません).

確認: 名前の一覧をメモに書き出し,数が上限以内で,すべて許可するドメインの下にあることを確かめます.

よくある間違い

手順 2. TSV を作る

目的: UPKI に出す申請用のファイル(TSV)を作ります.

操作

  1. UPKI TSV 作成ツールを開きます.
  2. 「ACME 利用情報作成申請」の TSV を作ります.利用管理者 FQDN に手順 1 のメインのホスト名を,dNSName に残りの名前を入れます.
  3. 証明書プロファイルを選びます.選んだプロファイル(RSA かどうか,鍵の長さ)をメモしておきます. 手順 5 で使います.

確認: 作成した TSV の名前の一覧が,手順 1 のメモと同じです.

よくある間違い: プロファイルをメモし忘れ,手順 5 で鍵の種類を間違える(発行が失敗します).

手順 3. TSV を提出し,EAB を受け取る

目的: 審査を通して EAB(Key ID と HMAC Key)を受け取ります.

操作

  1. UPKI 証明書発行支援システムの登録担当者画面にログインし,TSV をアップロードします.
  2. 審査を待ちます.数日かかることがあります.この間に手順 4 を進めます.
  3. 審査が済むと EAB(Key ID と HMAC Key)が発行されます.手元の安全な場所に,手順 7 まで一時的に控えてください.

確認: Key ID と HMAC Key の 2 つの文字列が手元にあります.

よくある間違い

手順 4. DNS に CNAME を設定してもらう

目的: 各ホスト名の「確認用の記録は専用の場所を見てください」という案内を,本番の DNS に書いてもらいます.

操作

  1. 名前ごとに 1 つずつ,次の CNAME の記録が必要です.<ホスト名> に手順 1 の名前を,<チャレンジ用ゾーン> にデプロイ担当者から聞いた名前を入れます.
    _acme-challenge.<ホスト名>.  IN CNAME  <ホスト名>.<チャレンジ用ゾーン>.
    例: www.example.ac.jp の場合
    _acme-challenge.www.example.ac.jp.  IN CNAME  www.<チャレンジ用ゾーン>.
    右側の名前は,他の名前と重ならなければ何でも構いません.チャレンジ用ゾーンの中に,事前に何かを作る必要はありません.
  2. DNS を自分で変更できないときは,DNS の管理者に次の依頼文を送ります.

    件名: DNS への CNAME レコード追加のお願い(証明書の自動発行のため)

    お疲れさまです.UPKI の証明書を自動発行する仕組みを使うため,次の CNAME レコードを追加してください.他のレコードの変更は不要です.

    • 種類: CNAME
    • 名前: _acme-challenge.<ホスト名 1>
    • 値: <ホスト名 1>.<チャレンジ用ゾーン>

    (名前ごとに 1 行ずつ)

    • <ホスト名 2> についても同様に,……

    追加の希望日: ○月○日まで(審査結果が出る前に済んでいると助かります)
    追加後は,お知らせください.

  3. 設定が済んだら,すべての名前について 確かめます(次の「確認」).

確認

よくある間違い

手順 5. 発行ポリシーを用意する

目的: 「どのドメインまで,どんな鍵で,期限の何日前に更新するか」というルールを決めます.すでに UPKI 用のポリシーがあり,条件が合うときは,この手順は飛ばして手順 6 に進みます.

操作

  1. ブラウザで <Conductor の URL> を開き,サインインします.
  2. メニューの「発行ポリシー」を開き,既存のポリシーを確認します.一覧には名前が表示されます.次の条件が合っていればそれを使います.合わなければ,新しいポリシーを作ります.
    • 許可するドメイン: 手順 1 の名前がすべてその下にある.
    • 鍵の種類: 手順 2 のプロファイルに合っている.RSA なら rsa2048.
    • ホスト名の最大数: 手順 1 の名前の数以上(UPKI は最大 8).
    • 期限の何日前に更新するか: 通常は 30(約 59 日で更新に入ります).
    • ワイルドカードは許可しない.
    • 接続先(binding): UPKI のもの(upki などの名前.デプロイ担当者に確認).
    • 名前: 後で選びやすい名前を付ける(例: 「UPKI 本番」).他のポリシーと同じ名前は付けられません.
  3. 新しく作るときは,「発行ポリシーを追加」を押し,上の値(名前を含む)を入れて「有効」にチェックを入れ,「発行ポリシーを追加」ボタンで保存します.

確認: ポリシーの一覧に,付けた名前で表示されます.

よくある間違い

手順 6. 証明書(target)を無効の状態で追加する

目的: ACME Conductor に「この名前の証明書を管理してください」と登録します.まだ EAB を登録していないので,無効の状態で作ります.

操作

  1. メニューの「証明書」を開き,「証明書を追加」を押します.
  2. 次のように入力します.
    • 主たるホスト名(FQDN): 手順 1 のメインのホスト名.作成後は変更できません.
    • 追加のホスト名(SAN): 残りの名前を 1 行に 1 つ.
    • 発行ポリシー: 手順 5 で付けた名前(例: 「UPKI 本番」)のポリシーを選ぶ.
    • 実行の接続先,DNS の接続先,保存先(store): 他の証明書と同じ値でよいのが普通です.分からなければデプロイ担当者に聞いてください.保存先(Key Vault)の種類が,証明書の形式(PEM か PFX)を決めます.詳しくは使い方の文書を見てください.
    • 有効: チェックを外します.
  3. 画面下の「証明書を追加」ボタンを押します.

確認: 証明書の一覧に,無効の状態で表示されます.

よくある間違い: 有効のまま作ってしまう.害はありませんが,アカウントがないため直後の実行が失敗し,失敗の記録が残ります.その場合も手順 7 に進んでかまいません.

手順 7. EAB を登録し,発行できたか確かめる

目的: EAB を登録して,証明書を実際に発行します.

操作

  1. 手順 6 で作った証明書の詳細ページを開き,「ACME アカウント」の節を探します.
  2. 手順 3 の Key ID と HMAC Key を入力し,「EAB を登録(世代 1)」を押します.入力した内容はブラウザの中で暗号化されて送られ,登録後は画面に表示されません.
  3. ページ上部の「有効にする」を押します.有効にした時点で自動的に発行が始まります.ページ上部の「次にやること」の案内にも,その時点ですべきことが表示されます.
  4. 「実行履歴」を開いて,実行(run)の状態を見ます.「実行中」から「成功」になれば完了です.数分かかることがあります.

確認

よくある間違い

発行できたか確かめる

  1. 「証明書」の一覧で,該当の証明書の「証明書の有効期限」の列に日付が入っています.有効期間は 89 日なので,今日から約 89 日後になっているはずです.一覧が長いときは,表の上の絞り込み欄にホスト名の一部を入力すると,該当の行だけが残ります(空白で区切ると,すべての語を含む行に絞れます).
  2. 証明書の詳細ページの「証明書」の行に,保存先のオブジェクト名(<ホスト名を - でつないだもの>-<16 桁の英数字> の形)が表示されます.これが Key Vault の中での証明書の名前です.使い方の文書で必要になるので,利用者やサーバ管理者に伝える名前として控えておきます.
  3. 管理者の許可があれば,Azure ポータルの Key Vault で「証明書」を開き,その名前があることを確かめられます.

証明書を実際に使うところ(Web サイトなど)へ反映する手順は,発行された証明書の使い方(ケース別)にあります.

うまくいかないとき

画面の実行履歴に出る失敗の表示と,その意味です.どれも,画面には英語のエラーコードがそのまま表示されます.

画面に出る表示意味すること誰に相談するか
AcmeFailure.要約に keeps one account per target and this target has none yetEAB がまだ登録されていない(手順 7 の前に実行された)手順 7 の EAB の登録を行う.そのあとで実行が自動的に起きる自分で対応できる
PolicyViolation.要約に fqdn is not under any allowed DNS suffix名前が許可するドメインの外にある名前を確認する.必要なら許可するドメインを増やしてもらうデプロイ担当者
AcmeFailure.数秒で終わったDNS の CNAME が抜けているなど,確認用の記録を置けなかった可能性が高い手順 4 の確認を全名前でやり直すDNS の管理者
AcmeFailure.数十秒かかって終わった確認は通ったが,鍵の種類が UPKI のプロファイルと違う,または登録していない名前が入っている手順 5 の鍵の種類を確認して直し,「今すぐ実行」を 1 回押すUPKI の窓口(名前の場合),デプロイ担当者
AcmeFailure.EAB を登録した直後の実行で失敗し,世代が「失敗」になったEAB の入力ミス,または使用済みの EAB新しい EAB を UPKI で受け取り,登録し直す(世代の番号は進みます)UPKI の窓口
何も起きない(実行が始まらない)証明書やポリシーが無効になっている,すでに別の実行が動いている「有効」になっているかを確認するデプロイ担当者

AcmeFailure の理由の詳細(UPKI からの応答)は,今のところ画面には出ません.実行にかかった時間と,直前にやった操作から見当をつけます.詳しい切り分けは運用ガイドの「失敗の読み方」にあります.

失敗した実行は,しばらく間隔を空けて自動で再試行されます.急いで何度も手動で実行しないでください. UPKI では所有確認に 20 回失敗すると,翌日まで処理が制限されます.

その後の運用

名前を変えるとき

ホスト名を足す・減らす,またはメインのホスト名を変えるときは,UPKI 側の手続きと Conductor 側の操作の順序が決まっています.手順は運用ガイドの「名前を変える」にあります.そのとおりに進めてください(特にメインのホスト名は,証明書の追加からやり直しになります).

用語集

用語意味
ACME証明書を自動で発行・更新するための決まり
UPKI ACMEUPKI が提供する ACME の窓口
EABUPKI ACME の登録に使う合言葉(Key ID と HMAC Key).1 回の登録にだけ使う
CN証明書に書かれるメインのホスト名(UPKI の利用管理者 FQDN)
SAN / dNSName証明書に一緒に書かれる追加のホスト名
FQDNwww.example.ac.jp のように,省略のないホスト名
DNSホスト名と住所(IP アドレス)を対応させる仕組み
CNAME「この名前は,あちらの名前を見てください」という案内の DNS 記録
委任確認用の記録を置く場所を,CNAME で別のゾーンに任せること
チャレンジ用ゾーン確認用の記録を置く専用の DNS の場所
所有確認(DNS-01)そのホスト名の持ち主であることを DNS で確かめる方法
証明書サーバの身分証明書
秘密鍵証明書とセットで使う,外に出してはいけない鍵
Key VaultAzure の,証明書や鍵の保管サービス
target(証明書)ACME Conductor が管理する証明書 1 枚の登録.UPKI の申請 1 つに当たる
run(実行)発行や更新の 1 回の処理.実行履歴で見られる
世代ACME アカウントの登録の番号.EAB を登録し直すたびに 1 つ進む