仕事中の問題と解決メモ。

最近はPythonとGoogle Cloud Platformがメイン。株式会社ビズオーシャンで企画と開発運用、データ活用とか。https://github.com/uyamazak/

Let’s Encrypt で複数ドメイン対応証明書を作る

無料のSSL証明書発行ができるLet’s Encryptを本番でも使い始めたけど、ドメインを変えたいときなど、ドメインごとに証明書をもたせるのが面倒だった。

そこで、一つの証明書で複数ドメインを使えるようにすることにした。

やってみると簡単だった。


認証は、DNSのTXTレコードを使うdns-01で行った。


letsencrypt.org


まず以前使っていたletsencrypt.shの名前が変わったdehydratedを使う。読めないから覚えにくい。

github.com


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