こんにちは
DNSチャレンジ1でLet's Encrypt証明書を発行したので、参考にと思い手順を残します。
助けになれば幸いです。
ワイルドカードで証明書を発行すれば
同一階層のサブドメインのみが異なるすべてのサーバーにインストールできます。
CentOS Stream 8 とnginx1.22.0を使用しています。。
EPELリポジトリの取得
EPELリポジトリインストール2
$dnf install epel-release
設定変更
$vi /etc/yum.repos.d/epel.repo
7行目enabled=0に変更
EPELインストール
インストールコマンド
$ dnf --enablerepo=epel install certbot python3-certbot-nginx
下記が確認コマンド
$ dnf --enablerepo=epel list certbot python3-certbot-nginx image.png
certbotがインストールされていることがわかります。
Let's encryptでワイルドカード証明書を作成
$ certbot certonly --manual --preferred-challenges dns-01 -m メールアドレス -d *.FQDN(ドメイン名)
上記のコマンドを打ちます。
※*.はワイルドカード表記3
ここで一旦止まる。
HOST NAMEとTXTレコードをDNSのTXTレコードとして追加する。
DNS TXTレコードが適用されてるか確認する
Windowsのコマンドプロンプトの場合
nslookup FQDN(ドメイン名)
コマンドプロンプトで上記のコマンドを打つとDNSサーバーのIPアドレスがわかります。
nslookup -type=TXT _acme-challenge.FQDN(ドメイン名) DNSサーバーのIPアドレス
コマンドプロンプトで上記のコマンドを打ちます。
Linux上での場合
CentOSでは、nslookupコマンドが無い場合がありますので、先ずは、nslookupコマンドの有無を確認していきます。
which nslookup
上記のコマンドを入力し、nslookupコマンドがあるのかを確認します。
この様に出力されたらOK!
と表示されたらbind-utilsパッケージ4のインストールをします。
bind-utilsパッケージのインストール方法
dnf install bind-utils
上記のコマンドを入力してください。その後、以下の様な画面が出て来ます。
yes か Noを聞かれるためyと入力して、エンターを押してください。
そうしたらインストールの完了です。
※念のためwhich nslookup
を入力し、インストールされていることを確認してください。
そうしたら、下記のコマンドを入力してください。
※FQDNドメインにAレコード設定しているサーバー上ではIPアドレスは不要です。 その為、nslookup FQDN(ドメイン名)
は省略しています。
nslookup -type=TXT _acme-challenge.FQDN
下記の画像と同じ様になると思います。
以上でDNS TXTレコードが適用されているかの確認が出来ます。
適用確認後
TXTレコードが適用されているのが確認できたらエンターを打ち証明書を取得します。
Successfully の文字が確認できたら成功です!
おまけ
Tera Termの接続やルーターが切れてしまった場合。
このチャレンジは接続が切れても有効なため、同じコマンドを打てば
再度同じTXTレコードで応答するので焦らないでください
--dry-runフラグ
Certbot を使用している場合、--dry-run フラグを設定するだけでステージング環境を利用できる。
その他の ACME クライアントを利用している場合は
そのクライアントの設定方法を参照して Let’s Encrypt のステージング環境でテストを必ず行う。
ただし、v2 staging environment には v2 互換の ACME クライアントが必要。
レート制限について
ステージング環境でも
本番環境のレート制限の説明に書かれているのと同様のレート制限が適用される。
次のような例外が設けられている。
・登録ドメインごとの証明書は、1週間ごとに 30,000 個まで
・重複する証明書は、1週間ごとに 30,000 個まで
・検証の失敗は、1時間ごとに 60 個まで
・IP アドレスごとのアカウント数は、1つの IP につき、3時間ごとに 50 アカウントまで
・ACME v2 では、New Orders は、1アカウントにつき、3時間ごとに 1,500 new orders まで
脚注
-
DNSチャレンジとは証明書取得方法の種類です。他にはHTTP-01チャレンジがあり下記に図で違いを表記します。
DNSチャレンジ
HTTP-01チャレンジ
※今回DNSチャレンジを選んだ理由はHTTP-01チャレンジだとワイルドカード証明書が発行出来ないからです。 ↩ -
EPELリポジトリとは
CentOS 標準のリポジトリでは提供されていないパッケージを
yum コマンドでインストールすることを可能にするリポジトリ。
今回はCentOS 8 Streamを使用しているのでdnfを使用しています。 ↩ -
ワイルドカードとは
ワイルドカード証明書は「www.example.jp」「for.example.jp」「bar.example.jp」のように
アスタリスクと同一階層のサブドメインのみが異なるすべてのサーバーにインストールできます。 ↩ -
bind-utilsパッケージとは
nslookup
やdig
といった、DNS情報の取得などのDNSに関係する作業を行うコマンドが一纏まりになったモノ。このパッケージが無いと、上記のコマンドが使えない。 ↩