Edited at

AmazonLinux2でLetsEncryptを使ってサブドメインをワイルドカードSSL化

ドキュメントルートに.well-knownディレクトリを作成する

mkdir .well-known 

chmod 775 .well-known

certbot-auto を持ってくる

mkdir -p ~/bin

curl -L https://dl.eff.org/certbot-auto \
-o ~/bin/certbot-auto
chmod a+x ~/bin/certbot-auto

Amazon Linux2でも動くように設定をイジる

cd ~/bin

vi certbot-auto

# elif [ -f /etc/issue ] && grep -iq "Amazon Linux" /etc/issue ; then

elif grep -i "Amazon Linux" /etc/issue > /dev/null 2>&1 || \
grep 'cpe:.*:amazon_linux:2' /etc/os-release > /dev/null 2>&1; then

ファイルを移動する

mv ./certbot-auto /usr/local/bin

#あとパスも通しておく
export PATH="$PATH:/usr/local/bin"

以下のコマンドを流す

certbot-auto certonly --manual -d *.taroimo.jp -m mail-address@taroimo.jp --agree-tos --manual-public-ip-logging-ok --debug

--debugフラグを付けないとエラーが出るらしい。実際出る。

下のようなメッセージに加えてPlease Enter みたいなのが出たら

Route53にTXTレコードを追加

_acme-challenge.taroimo.jpに表示されたvalueを割り当てる

Please deploy a DNS TXT record under the name

_acme-challenge.taroimo.jp with the following value:

[TXTレコードの値がここに出る]

Before continuing, verify the record is deployed.

令和元年8月14日 追記

複数のインスタンスで同じドメインのサブドメインを使っている場合は

インスタンス毎に_acme-challengeを設定しておく必要がある。

上書き上書きでやってたら最初のインスタンスの証明書期限が切れたタイミングで

更新ができなかった(当たり前だが)

でもTXTレコードって1個しか設定出来ないし困ったなーとか思ってたけどそんなことなかった。

こんな感じで複数行にしておけばおkぽいです。

Valueはそれぞれダブルクォートで囲んで、Value毎に改行を入れましょう。

スクリーンショット 2019-08-14 15.00.42.png

別ターミナルを立ち上げてnslookupでacme-challengeのTXTレコードが上記の値であることを確認する

nslookup -q=txt _acme-challenge.taroimo.jp

  _acme-challenge.taroimo.jp text = "TXTレコードの値"

virtualssl.confにSSL化するサイト設定を記述

<VirtualHost *:443>

# もろもろ設定
</VirtualHost>

Apacheを再起動してhttpsでアクセスして証明書が適用されているか確認

適用されてたら.well-knownディレクトリを削除して完了

おわり。