Slide 1

Slide 1 text

証明書管理の 自動化 V12 Beta 2 の CertMgr による DNS-01 challenge を試す @harunkakano (Twitter) harunakano.blogspot.com (Blog)

Slide 2

Slide 2 text

検証の前に 証明書の取得と自動化のために知っておきたいことがあります

Slide 3

Slide 3 text

V11までの手動での証明書管理 • KYRTOOL(Domino V11に同梱、V10以前は別途ダウンロー ド) • OpenSSL(別途ダウンロード)のインストールと設定 • 長いコマンドを何度もタイプする操作を求められる

Slide 4

Slide 4 text

V11までの証明書管理の自動化ツール • midpoints Let’s Encrypt for Domino (LE4D) • Domino に nsf ファイルを設置 • 開発言語は Java

Slide 5

Slide 5 text

Let’s Encrypt https://letsencrypt.org/ja/

Slide 6

Slide 6 text

Let’s Encrypt について • HTTPS (SSL/TLS) の有効化に必要なデジタル証明書を、無料で 提供する認証局(CA) • ISRGがサービスを提供 • 証明書の取得や更新の自動化が可能 https://letsencrypt.org/ja/about/

Slide 7

Slide 7 text

ACMEプロトコル • 証明書の要求から取得までを自動化するためのルール • RFC 8555 - Automatic Certificate Management Environment (ACME) • CA(認証局)は、要求したドメイン名が我々の制御下にあるこ とを証明できれば証明書を発行する • ホスティングプロバイダによる ACMEクライアント( ACMEプ ロトコルを実装するソフトウェア)のサポートが必要

Slide 8

Slide 8 text

証明書自動入手の流れ 1. 証明書リクエスト 2. 認証用トークン発行 3. トークンの登録 4. 認証チャレンジの要求 5. トークンの確認 6. 証明書発行 ホスティング プロバイダ ドメインが我々の制御下にあることを証明 証明書等の要求と発行 CA CA CA CA CA ホスティング プロバイダ ACMEクライアント ACMEクライアント ACMEクライアント ACMEクライアント ACMEクライアント ※ホスティングプロバイダ:WEBサーバーまたはDNSサービス

Slide 9

Slide 9 text

「チャレンジ」のタイプ HTTP-01 チャレンジ • ACMEクライアントが、Let’s Encrypt が発行したトークン をセットしたファイルをWeb サーバーへ設置する DNS-01 チャレンジ • ACMEクライアントが、Let’s Encrypt が発行したトークン をセットしたTXTレコードを DNSへ設置する

Slide 10

Slide 10 text

利点/欠点 HTTP-01 チャレンジ ✓メリット • 証明書の取得が比較的簡単に自 動化できる ╳デメリット • Let’s Encrypt がWebサーバー へアクセスできる必要がある • ワイルドカード証明書を発行で きない DNS-01 チャレンジ ✓メリット • ワイルドカード証明書を発行可 能 • 複数のWEBサーバーの証明書 を取得可能 ╳デメリット • DNS プロバイダによる自動 アップデート可能なAPIの提供 が必要

Slide 11

Slide 11 text

CertMgr の検証 V12 Beta 2 で DNS-01 チャレンジによるTLS証明書の自動取得を検証

Slide 12

Slide 12 text

DNS-01チャレンジの検証 • ACMEクライアント:CertMgr タスク • CertMgrの初回起動時に CertStore.nsf を自動作成 • TLS Credentials, DNS Provider, DNS Configuration の各設定を追加 • DNS-01チャレンジでは Domino にDSAPI 設定や HTTP タスク起動が不要 • ホスティングプロバイダ(DNS):CloudFlare • CertStore.nsf へTXTレコードを追加/削除するための設定を追加 • DNSプロバイダによるAPI提供が必要 使用中の MyDNS.jp はAPI仕様不明のため CloudFlare へ乗り換え • ドメインのAレコードを登録 • ドメイン名:dominov12beta.work • お名前.com で取得 • DNS として CloudFlare を指定

Slide 13

Slide 13 text

検証した DNS-01 チャレンジ 1. 証明書リクエスト 2. 認証用トークン発行 3. トークンをTXTレコードにして登録 4. 認証チャレンジの要求 5. TXTレコードの確認 6. 証明書発行 7. TXTレコードの削除

Slide 14

Slide 14 text

CertStore.nsf の作成 • CertMgr タスクの実行 コンソールで “load certmgr” コマンドを実行、または notes.ini の ServerTasks= へ certmgr を追加 初回起動時に CertStore.nsf が無ければ自動作成 コマンドに “-d” を付けて起動するとデバッグモードになる

Slide 15

Slide 15 text

CertStore.nsf の画面ショット

Slide 16

Slide 16 text

ACME Account ACMEプロトコルに対応したCAを設定します

Slide 17

Slide 17 text

DB作成時に既存の2文書

Slide 18

Slide 18 text

「Accept Let’s Encrypt terms of service」にチェックが必要

Slide 19

Slide 19 text

DNS Provider Configuration CertMgr が DNS プロバイダへアクセスしTXTレコードの登録と削除を行う ために必要な設定を行います

Slide 20

Slide 20 text

[Add Config]ボタンでDNS設定を白紙から作成することも 可能だが、DXLファイルからのインポートも可能 ベータフォーラムで公開されていた DXLファイルをインポートして追加 された2つのDNS設定

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

インポートしたままの設定では cfg_DnsZone フィールドの値を取得できなかったため 「Lookup header formula」の式を変更した

Slide 23

Slide 23 text

DNS Provider Account ドメイン名と、DNSプロバイダの認証情報を登録します

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

ドメイン名 DNSプロバイダでの認証時の情報 (ここでは Authorization token のみ記入) DNS Provider Configuration で 設定済みのプロバイダを選択

Slide 26

Slide 26 text

TLSクレデンシャル文書 CAが証明書の発行に必要な情報を登録し、実行します

Slide 27

Slide 27 text

Basicタブで入力する項目 Hostname Common Name (CN) Country Key type に“ECDSA”を選択 そのほかはデフォルトのまま [Submit Request]ボタンを クリック 実行結果

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

[Examine Certificate(s)]ボタンで 入手できた証明書の詳細を確認

Slide 30

Slide 30 text

スライドの最後