無料のSSL証明書発行ができるLet’s Encryptを本番でも使い始めたけど、ドメインを変えたいときなど、ドメインごとに証明書をもたせるのが面倒だった。
そこで、一つの証明書で複数ドメインを使えるようにすることにした。
やってみると簡単だった。
まず以前使っていたletsencrypt.shの名前が変わったdehydratedを使う。読めないから覚えにくい。
まずgit clone
git clone https://github.com/lukas2511/dehydrated
今回取得するのは、oceanus.bizocean.co.jpとo.bizocean.jp
まだ完全自動化はやらないのでhookはサンプルを使う
./dehydrated -c -d oceanus.bizocean.co.jp -d o.bizocean.jp --challenge dns-01 -k ./docs/examples/hook.sh -a prime256v1 -x
- dオプションを複数指定するだけ。
ドメインごとにTXTレコードを指定されるので変更する。一度認証が通れば、次回も同じレコード内容で大丈夫な模様。
これで完了。certs以下にファイル一式が書き出される
私はGoogleのロードバランサーのSSLを使っているので、コマンドでアップする。動作確認できて自動化する段階になったらこういうのをhookに書けばcronでいけそう。
gcloud beta compute --project "oceanus-dev" ssl-certificates create "letsencrypt`date "+%Y%m%d"`" --certificate=certs/oceanus.bizocean.co.jp/fullchain.pem --private-key=certs/oceanus.bizocean.co.jp/privkey.pem