Certbotで標準のwebrootプラグインを使ってLet's encryptの証明書を発行する時、複数のディレクトリにルートが存在するマルチドメインのSAN証明書を発行したい時がある。
イメージ
/var/www
└── vhosts
├── example.com // example.com, www.example.com
└── info.example.com // info.example.com
こういうとき、certbotの--webroot-map
オプションを使うと捗る。[man]
特に自動化が。
使い方と例
--webroot-map
には[]{ドメイン: ディレクトリ}
のJSONオブジェクトを渡してやる。
上記のディレクトリ構成に対して行う場合、こんな感じ。多分。
certbot --webroot --webroot-map '{"example.com: "/var/www/vhosts/example.com","www.example.com: "/var/www/vhosts/example.com","info.example.com: "/var/www/vhosts/info.example.com"}'
というか別に普通に-w
(--webroot-path
)と-d
(--domain
)オプションでもいい。ヘルプにある通り。
certbot --webroot -w /var/www/vhosts/example.com -d example.com -w /var/www/vhosts/example.com -d www.example.com -w /var/www/vhosts/info.example.com -d info.example.com
-w
と-d
の数があってないときは自動的にいい感じにされる、らしい。(最後のにフォールバックされる?)よくわからない。あわせておくのが無難そう。
この自動化でサーバー跨ぐのは流石に無理なのでDNS-01とか頼ったほうがはやそう。そもそも跨がなければいいんだけど。
LB構成でLet's encrypt使ってる人ってどうしてるんだろ……そもそもLE使ってないか。