無料SSL証明書しかもワイルドカードで

#前準備
##ドメインについて
|対象ドメイン名 | hoge.ml |
|---|---|
フリードメインを取得→[このあたり](https://qiita.com/teekay/items/135dc67e39f24997019e)して、Route53に設定しておく。
無料でかつ、お手軽な割に長期間特に問題なく使えているので良い。

##証明書設定方法の調査
EC2にOpenVPNサーバに証明書を入れようとして、久々にLet's Encriptを調査
以前はサブドメインまで指定して、開けたくもない８０番ポートを開けてやった記憶があるが
もうちょっとスマートにできないものか。。
が課題。
１、DNS認証ができそう
　　証明書発行者は、「Route53にTXTレコードを設定することでドメイン保有者だと確認できる。」
　　という意味なので、非常に良い。この方式を使う
２、[ワイルドカードができるようになった様子](https://community.letsencrypt.org/t/acme-v2-production-environment-wildcards/55578)
　　！！！！いちいちサブドメイン単位で作らなくてもよい！！！！
　　~~どうせ、ぁゃしぃ証明書だし~~楽であることに越したことはない

#やってみた
Ubuntu 16.04
###certbotを入れる
```terminal
git clone https://github.com/certbot/certbot
cd certbot
```
###certbotを実行

```terminal
sudo ./certbot-auto certonly --manual --domain *.hoge.ml --preferred-challenges dns-01 --server https://acme-v02.api.letsencrypt.org/directory
```
|パラメータ|内容|
|---|---|
|certonly |SSL/TLS サーバ証明書の取得のみを行う|
|--manual |ドメイン名の認証を手動で行う|
|--domain *.hoge.ml |対象ドメイン名。今回はワイルドカードなので  *.hoge.ml|
|--preferred-challenges dns-01 |認証方法の選択：dns-01 DNSのTXTレコードによる確認|
|--server https://acme-v02.api.letsencrypt.org/directory|Certbotの認証サーバをワイルドカード対応のサーバに変える|

何やら出てくるので、メアドを入れて、License Agreement　をAgree(A)する。

```terminal
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
```
翻訳：お前ら英語わからないだろう？だったらとりあえずYESにしときなよ（嘘）
→お断りします。NOにした。

```terminal
NOTE: The IP of this machine will be publicly logged as having requested this
certificate. If you're running certbot in manual mode on a machine that is not
your server, please ensure you're okay with that.

Are you OK with your IP being logged?
```
このマシンのIPは、要求したものとして公開されますがOK？
→DHCPだしOKとする

```terminal
_acme-challenge.hoge.ml with the following value:
OaHOGEHOGE4RRfHOGE0ao3PQmkHogEoHoGEzPgCWrVYI
```
DNSのTXTレコードにこうやって書け!が出てくる。
おそらくDNS書き換えは即反映するので、処理は止めておく。

###Route53でレコードを作る
![Route53](https://qiita-image-store.s3.amazonaws.com/0/185989/2a0543e5-941c-654c-5978-cb8515a9322a.png)

###続き
Enterを押して進める

```terminal
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/hoge.ml/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/hoge.ml/privkey.pem
   Your cert will expire on 2018-09-19. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot-auto
   again. To non-interactively renew *all* of your certificates, run
   "certbot-auto renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le
```

/etc/letsencrypt/live/hoge.ml/
このあたりに保存されてます的な感じです

```terminal
# ls -l /etc/letsencrypt/live/hoge.ml
total 8
-rw-r--r-- 1 root root 2139 Jun 21 06:34 cert1.pem
lrwxrwxrwx 1 root root   31 Jun 21 06:11 cert.pem -> ../../archive/hoge.ml/cert1.pem
lrwxrwxrwx 1 root root   32 Jun 21 06:11 chain.pem -> ../../archive/hoge.ml/chain1.pem
lrwxrwxrwx 1 root root   36 Jun 21 06:11 fullchain.pem -> ../../archive/hoge.ml/fullchain1.pem
lrwxrwxrwx 1 root root   34 Jun 21 06:11 privkey.pem -> ../../archive/hoge.ml/privkey1.pem
-rw-r--r-- 1 root root  682 Jun 21 06:11 README
```

#証明書の更新
３か月で切れるが、メールで教えてくれるので都度下記コマンド実施でよいと思われる

```terminal
./certbot-auto renew
```

#まとめ
下手に自己証明書を作るよりは全然良い