1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ワイルドカードでドメイン認証の設定

Posted at

こんにちは:upside_down:
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に変更

スクリーンショット 2022-06-28 165412.png

EPELインストール

インストールコマンド

$ dnf --enablerepo=epel install certbot python3-certbot-nginx

下記が確認コマンド

$ dnf --enablerepo=epel list certbot python3-certbot-nginx image.png

スクリーンショット 2022-06-28 165533.png

certbotがインストールされていることがわかります。

Let's encryptでワイルドカード証明書を作成

$ certbot certonly --manual --preferred-challenges dns-01 -m メールアドレス -d *.FQDN(ドメイン名) 

上記のコマンドを打ちます。
※*.はワイルドカード表記3

スクリーンショット 2022-06-28 170233.png

ここで一旦止まる。

HOST NAMEとTXTレコードをDNSのTXTレコードとして追加する。

DNS TXTレコードが適用されてるか確認する

Windowsのコマンドプロンプトの場合

nslookup FQDN(ドメイン名)

コマンドプロンプトで上記のコマンドを打つとDNSサーバーのIPアドレスがわかります。

nslookup -type=TXT _acme-challenge.FQDN(ドメイン名) DNSサーバーのIPアドレス

コマンドプロンプトで上記のコマンドを打ちます。

スクリーンショット 2022-06-28 171012.png

Linux上での場合

CentOSでは、nslookupコマンドが無い場合がありますので、先ずは、nslookupコマンドの有無を確認していきます。

which nslookup

上記のコマンドを入力し、nslookupコマンドがあるのかを確認します。
image.png
この様に出力されたらOK!

image.png
と表示されたらbind-utilsパッケージ4のインストールをします。

bind-utilsパッケージのインストール方法
dnf install bind-utils

上記のコマンドを入力してください。その後、以下の様な画面が出て来ます。

image.png

yes か Noを聞かれるためyと入力して、エンターを押してください。
そうしたらインストールの完了です。
※念のためwhich nslookupを入力し、インストールされていることを確認してください。

そうしたら、下記のコマンドを入力してください。
※FQDNドメインにAレコード設定しているサーバー上ではIPアドレスは不要です。 その為、nslookup FQDN(ドメイン名)は省略しています。

nslookup -type=TXT _acme-challenge.FQDN

下記の画像と同じ様になると思います。

スクリーンショット 2022-06-29 104952.png

以上でDNS TXTレコードが適用されているかの確認が出来ます。

適用確認後

TXTレコードが適用されているのが確認できたらエンターを打ち証明書を取得します。

Successfully の文字が確認できたら成功です!

おまけ

Tera Termの接続やルーターが切れてしまった場合。

このチャレンジは接続が切れても有効なため、同じコマンドを打てば
再度同じTXTレコードで応答するので焦らないでください:upside_down:

--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 まで

脚注

  1. DNSチャレンジとは証明書取得方法の種類です。他にはHTTP-01チャレンジがあり下記に図で違いを表記します。
    DNSチャレンジ
    Qiita載せる用 (2).jpg
    HTTP-01チャレンジ
    Qiita載せる用 (1).jpg
    ※今回DNSチャレンジを選んだ理由はHTTP-01チャレンジだとワイルドカード証明書が発行出来ないからです。

  2. EPELリポジトリとは
    CentOS 標準のリポジトリでは提供されていないパッケージを
    yum コマンドでインストールすることを可能にするリポジトリ。
    今回はCentOS 8 Streamを使用しているのでdnfを使用しています。

  3. ワイルドカードとは
    ワイルドカード証明書は「www.example.jp」「for.example.jp」「bar.example.jp」のように
    アスタリスクと同一階層のサブドメインのみが異なるすべてのサーバーにインストールできます。

  4. bind-utilsパッケージとは
    nslookupdigといった、DNS情報の取得などのDNSに関係する作業を行うコマンドが一纏まりになったモノ。このパッケージが無いと、上記のコマンドが使えない。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?