2と3のリビジョン間の差分
2017-03-21 23:20:36時点のリビジョン2
サイズ: 4032
コメント:
2017-03-22 00:19:59時点のリビジョン3
サイズ: 6130
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 33: 行 33:
本例では、www.example.jp というコモンネームに対して証明書を発行するものとする。
チャレンジ/レスポンスコードをダイナミックアップデートするため、
example.jp ゾーンに対する権威DNSサーバーへの権限があるものとする。
少なくとも _acme-challenge.www.example.jp ゾーン(と分けて)に対する権限は最低限必要である。
行 36: 行 41:

= DNSサーバーの設定 =
 * [[SSL証明書/Let's EncryptでSSL証明書の新規取得と自動更新(http-01編)|Let's EncryptでSSL証明書の新規取得と自動更新(http-01編)]]で実施した「ドメイン所有者確認トークンディレクトリの指定」の代わりの作業となる。
 * よってディレクトリ作成は不要である。
 * ここでは「example.jp」ゾーンから「_acme-challenge.www.example.jp」を委任する。
 * DNS権威(コンテンツ)サーバーは ns.example.jp とする。

== example.jp のゾーン情報 ==
{{{
$TTL 300

@ IN SOA ns.example.jp. domain.example.jp. (
                               2017032201 ; serial
                               7200 ; refresh (2 hours)
                               900 ; retry (15 minutes)
                               2419200 ; expire (4 weeks)
                               86400 ; minimum (1 day)
                               )
                        IN NS ns
acme-challenge.www IN NS ns
}}}

== acme-challenge.www.example.jp ゾーン情報 ==
{{{
$TTL 300

@ IN SOA ns.example.jp. domain.example.jp. (
                               2017032201 ; serial
                               7200 ; refresh (2 hours)
                               900 ; retry (15 minutes)
                               2419200 ; expire (4 weeks)
                               86400 ; minimum (1 day)
                               )
                        IN NS ns
}}}

Let's EncryptでSSL証明書の新規作成と自動更新(dns-01編)

  • Lets' EncryptによるSSL証明書の自動取得・自動更新に関するメモを残す。

  • Let's Encrypt について復習ではあるが、
    • 認証局のブランドの一つである。これは「Symantec(旧Verisign)セキュア・サーバーID」「CyberTrust SureServer」「SecomTrust セコムパスポート for Web3.0」「GlobalSign クイック認証SSL」「GeoTrust RapidSSL」「Comodo PositiveSSL」などの一つと考えれば良い。たぶんどれかは聞いたことあるはずと思う。

    • 他の認証局と明確に違う点は、
      • 無償。当然ではあるが、1証明書をどのように(複数IP, 複数バックエンド, 複数プロトコル)使用しても1取得で済む。
      • 親ドメインをまたぐ、マルチドメイン証明書(Subject Alternative Names)に対応している。
      • その代わり、ワイルドーカード証明書には対応していない。
      • RSA(2048bit, 3072bit, 4096bit), ECDSA(prime256v1, secp384r1) の5種類の鍵が選べる。
      • ACME(Automated Certificate Management Environment)プロトコルによる証明書の認証から発行までの一連のバッチ化(自動化)が可能。
      • 扱える端末が(比較的)少ない。全アクセスの 0.5% であってもフォローしないといけない用途なら使えない。逆に今時のメジャーどころのブラウザは対応している。
      • DV(Domain Validation)証明書のみ。ただしOV(Organization Validation)やEV(Extended Validation)との純技術的な優劣は無い。
      • 取得数制限(特に単位時間あたりの)があるので注意。詳しくは Rate Limits を参照のこと。

      • 検証(ステージング)用認証局も用意されているので、セットアップ時の検証や、ACMEクライアントの開発といった用途ではこちらを使う。

      • 「現在の」ルート証明書は「IdentTrust|DST(Digital Signature Trust) Root CA X3」である。

      • 少なくとも中間証明書の発行者(Issuer)はそうである(ISRG - Internet Security Research Group ではない)。

      • このルート証明書がインストールされた端末が対応端末となる。
      • 中間証明書は「Let's Encrypt Authority X3」である(場合によってはこっち「も」入ってることがあるかもしれない)。
  • 使用するツール・傾向については Let's EncryptでSSL証明書の新規取得と自動更新(http-01編) を参照のこと。

  • ここでは「チャレンジ・レスポンス」を HTTP ではなく、DNS を使う方法について説明する。
  • 環境(イントラネット内など)によってはこの方法しか採れないケースもありうる。
  • DNSサーバーとの連携(諸設定)が必要になってしまうが、この味を知ってしまうと http-01 手順には戻れなくなること請け合いである:-)。

検証環境

  • OSは FreeBSD 11.0-R。
  • ACMEクライアントは dehydrated 0.4.0。
  • DNSサーバーは BIND 9.11.0-P3。

いずれも最新のリリースということで確認しているが、ある程度古い環境でも問題無いと思われ。

本例では、www.example.jp というコモンネームに対して証明書を発行するものとする。 チャレンジ/レスポンスコードをダイナミックアップデートするため、 example.jp ゾーンに対する権威DNSサーバーへの権限があるものとする。 少なくとも _acme-challenge.www.example.jp ゾーン(と分けて)に対する権限は最低限必要である。

インストール

  • いずれも ports/security/dehydrated、ports/dns/bind911 よりインストールする。
  • オプションの選択によって手順が変わる点は無いため、ここでは明示しない。

DNSサーバーの設定

  • Let's EncryptでSSL証明書の新規取得と自動更新(http-01編)で実施した「ドメイン所有者確認トークンディレクトリの指定」の代わりの作業となる。

  • よってディレクトリ作成は不要である。
  • ここでは「example.jp」ゾーンから「_acme-challenge.www.example.jp」を委任する。
  • DNS権威(コンテンツ)サーバーは ns.example.jp とする。

example.jp のゾーン情報

$TTL               300

@                       IN SOA ns.example.jp. domain.example.jp. (
                               2017032201 ; serial
                               7200       ; refresh (2 hours)
                               900        ; retry (15 minutes)
                               2419200    ; expire (4 weeks)
                               86400      ; minimum (1 day)
                               )
                        IN NS ns
acme-challenge.www      IN NS ns

acme-challenge.www.example.jp ゾーン情報

$TTL               300

@                       IN SOA ns.example.jp. domain.example.jp. (
                               2017032201 ; serial
                               7200       ; refresh (2 hours)
                               900        ; retry (15 minutes)
                               2419200    ; expire (4 weeks)
                               86400      ; minimum (1 day)
                               )
                        IN NS ns

certificate/レッツエンクリプトでSSL証明書の新規取得と自動更新(dns-01編) (最終更新日時 2019-12-14 23:31:51 更新者 NorikatsuShigemura)