Edited at

[Ubuntu 18.04/LTS]letsencryptでワイルドカード認証を取るぞ![nginx/1.17.3]


certbotのインストール

Certbot クライアントのインストール

sudo apt install letsencrypt

貴方の持てる全てを使ってcertbotのインストールまでは頑張って下さい。Ubuntu v18.04に対応するやつがまだ用意されてないっぽいですが、16.04のでも平気でした。


Certbotで取得すっぞ

私の場合kiwi-bird.xyzからkiwibird.tokyoへの引っ越しのため、以下の4つのドメインに対応するワイルドカード証明書を発行します。1つの証明書で複数のドメインを認証することが出来るのでLetsencryptは神ですね。しかもただやぞ


  1. kiwi-bird.xyz

  2. *.kiwi-bird.xyz

  3. kiwibird.tokyo

  4. *.kiwibird.tokyo

さて、以下のようにスクリプトとしてまとめておくと以後の更新が楽です。今は良いですが、3ヶ月後の更新時、あなたがこの手順を綺麗サッパリ忘れていることを私は知ってますから!


tryCertRenew.sh

# !/bin/bash

# もしも既存の証明書が存在するなら、削除
sudo certbot delete -d kiwi-bird.xyz && sudo certbot delete -d kiwibird.tokyo

# 再取得処理
sudo certbot certonly \
--server https://acme-v02.api.letsencrypt.org/directory \
--manual --preferred-challenges dns \
-d *.kiwibird.tokyo \
-d kiwibird.tokyo \
-d *.kiwi-bird.xyz \
-d kiwi-bird.xyz



acme-challenge

参考: Let's Encrypt (certbot) でワイルドカード証明書できた!

Please deploy a DNS TXT record under the name

_acme-challenge.kiwibird.tokyo with the following value:

PeXCeVkpkfjCVRVPJjpQQJEfDlRn2SH1cS012EP

Before continuing, verify the record is deployed.
-------------------------------------------------------------------

途中でこんなのが出てきます。これが出てきたらワイルドカードの取得はもう目の前です!上記の情報を、あなたが現在利用しているDNSサーバー上に登録する必要があります。私はネームサーバーをConohaにしているのでConoha上で作業しますが、各自読み替えていただけると幸いです。


DNSサーバー上での作業編

このはちゃんの絶対領域が見れるのはConohaVPSだけ!!

acme.png

Conohaにログイン後、DNS - kiwibird.tokyo - TXTレコードを作成します。


  • タイプ


    • TXT



  • 名称


    • _acme-challenge.kiwibird.tokyo



  • TTL


    • 空白でOK




    • PeXCeVkpkfjCVRVPJjpQQJEfDlRn2SH1cS012EP



保存。名称_acme-challengeになり、.以下のドメインが切り取られてると思いますが気にしないでOKです。1分くらい待たないと反映されないときもありますので、PUBGを1ゲームやってからまた来ましょう。ロシアキーなら700円くらいだよ...DNSの更新後、数分後にEnterをぽちぽちするとcongratulation!!となり、無事取得が終わります。

ls -l /etc/letsencrypt/live/kiwibird.tokyo

chain.png

最後にnginxの設定を行います。


nginx

# /etc/nginx/conf.d/default.conf

server {
listen 443 ssl http2;
keepalive_timeout 70;
server_name www.kiwibird.tokyo;
root /var/www/html;
index index.html;
ssl_certificate /etc/letsencrypt/live/kiwibird.tokyo/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/kiwibird.tokyo/privkey.pem; # managed by Certbot
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128:AES256:AES:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:15m;
ssl_session_timeout 15m;
}

listen, ssl_certificate, ssl_certificate_keyを各々の環境に書き換えて下さい。

sudo nginx -t # 構文チェック。↓が出たらok

#nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
#nginx: configuration file /etc/nginx/nginx.conf test is successful

sudo nginx -s reload

お疲れ様でした~。