certbot の証明書が増えすぎたので辛い
certbot で証明書をバンバン作ってたら管理がめんどくさくなってきた。
証明書の管理を楽にしたい。
LetsEncryptの証明書は、ワイルドカードに対応しているので、ワイルドカードな証明書を作ることもできるし
また、ワイルドカードだけでなく、複数のドメインを入れることができる。
これらの選択肢があります。
ワイルドカードの証明書の利用
ワイルドカード証明書を使うことで、ある程度の証明書をまとめることが出来た。
これについては、過去記事があります。→ certbot がLetsEncryptのワイルドカード証明書に対応してたので作ってみた - それマグで!
でも、まだ足りない。サブドメインのワイルドカードや別ドメイン(別名)などもあると管理が煩雑だった。
複数ドメインを1枚の証明書にまとめる。
certbot の証明書は、「名前」(初期値はドメイン)単位で管理されているが、その証明書に含まれるドメインはいくつも指定が可能です。
説明 | 例 |
---|---|
メインのドメイン | example.com |
ワイルドカード | *.example.com |
サブドメインのイルドカード | *.takuya.example.com |
別ドメインのワイルドカード | *.example.jp |
これらの複数のドメインとワイルドカードを1枚に押し込める事が可能でした。
証明書をまとめるメリット
apache / nginx などの設定が非常に楽ちんになる。
証明書の更新作業が非常に楽ちんになる。
なので、ドメインを追加するときは新規で証明書作るより、既存の証明書(名前)にドメインを追加して再取得するほうがいい。
ワイルドカードで複数にサブドメインをまるっと突っ込む例。
mydomain=example.com \ sudo ./certbot-test/bin/certbot \ certonly \ --cert-name $mydomain-all-in-one \ --dns-cloudflare --dns-cloudflare-credentials /etc/letsencrypt/cloudflareapi.cfg \ --server https://acme-v02.api.letsencrypt.org/directory \ -d "$mydomain" \ -d "*.$mydomain" \ -d "*.a.$mydomain"
このコマンドのポイントは
--cert-name
で「覚えやすい名前」をつけているところ。(よく使われるの)ドメインそのままを名前にせず、自分で名付けています。これによって複数ドメインが入った証明書であることをわかりやすくしている
-d ドメイン
で 複数ドメイン(ワイルドカードも含めて)を指定しているところ。
オプションをこれら使うことで、証明書1つでマルチに対応できる
すでに存在する証明書をまとめる
これは、削除→新規作成と更新→追加の2つの選択肢がある。
削除→新規 の例
certbot revoke ...#略 certbot certonly # 略
削除(revoke)と新規作成は、個別に記事があるので参照する。
追加 を使う
削除→追加以外にも追加オプションがあるので、これも知っておくと役に立ちそう
追加するときは、既存の証明書の名前を指定し、既存のドメインをすべて指定する。
設定例
- 証明書の名前 --cert-name $mydomain-allinone
- 既存のドメイン -d git.example.com -d example.com
- 追加したいドメイン -d add.example.com
mydomain=example.com \ sudo ./certbot-test/bin/certbot certonly \ --cert-name $mydomain-allinone \ -d git.example.com -d add.example.com
TODO ↑の写真とコマンドは間違ってるので後で修正。
すると、次の様に、ドメインに追加するメニューと確認が出てくる。
本家解説
--expand
はdocumentation によると次のように解説されている。
--expand tells Certbot to update an existing certificate with a new certificate that contains all of the old domains and one or more additional new domains. With the --expand option, use the -d option to specify all existing domains and one or more new domains.
既存のドメインの証明書を新しい証明書に更新するが、一つ以上の追加(または削除)したいドメインがあるときに -d でドメインを列挙して指定する。
まとめ
証明書にドメイン追加とワイルドカードを使うことで、複数のサブドメインを1枚の証明書にまとめることができ、管理がとても楽ちんになる。
また、サブドメインでもなく、全然別のドメインを入れることができるので、別のドメインをまとめることで管理が簡素化する。 (ただし、同一証明書を利用しているときは、CDNやプロキシでさばくと便利なのですが、複数のドメインを証明書とプロキシでまとめるとその分平分で通信も見られやすいので注意が必要)