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


# certbotのインストール

[Certbot クライアントのインストール](https://certbot.eff.org/)

```bash
sudo apt install certbot python3-certbot-nginx
```

# Certbotで取得すっぞ

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

1. `kiwi-bird.xyz`
2. `*.kiwi-bird.xyz`
3. `kiwibird.tokyo`
4. `*.kiwibird.tokyo`

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

```bash: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) でワイルドカード証明書できた！](https://qiita.com/chamaharun/items/566c78bb8a13b4c2bc16)

```bash
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](https://www.conoha.jp/referral/?token=uHUybe0ahHjmVIdK4LXwjWKcuEUaQGxVUZlq5jKBm0_NvtKs9ZY-MUA)にしているので[Conoha](https://www.conoha.jp/referral/?token=uHUybe0ahHjmVIdK4LXwjWKcuEUaQGxVUZlq5jKBm0_NvtKs9ZY-MUA)上で作業しますが、各自読み替えていただけると幸いです。

## DNSサーバー上での作業編

このはちゃんの絶対領域が見れるのは[ConohaVPS](https://www.conoha.jp/referral/?token=uHUybe0ahHjmVIdK4LXwjWKcuEUaQGxVUZlq5jKBm0_NvtKs9ZY-MUA)だけ！！

![acme.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246065/365ed95e-b584-1649-36bb-9bc01203f224.png)

[Conoha](https://www.conoha.jp/referral/?token=uHUybe0ahHjmVIdK4LXwjWKcuEUaQGxVUZlq5jKBm0_NvtKs9ZY-MUA)にログイン後、`DNS` - `kiwibird.tokyo` - `TXTレコード`を作成します。

- タイプ
    - `TXT`
- 名称
    -  `_acme-challenge.kiwibird.tokyo`
- TTL
    - 空白でOK
- 値
    - `PeXCeVkpkfjCVRVPJjpQQJEfDlRn2SH1cS012EP`

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

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

![chain.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/246065/55889dc8-f0da-5fe4-06c6-78b8fff8dfc4.png)

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

# 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`を各々の環境に書き換えて下さい。

```bash
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
```

お疲れ様でした～。