LoginSignup
10

More than 1 year has passed since last update.

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

Last updated at Posted at 2018-08-10

certbotのインストール

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

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ヶ月後の更新時、あなたがこの手順を綺麗サッパリ忘れていることを私は知ってますから!

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

お疲れ様でした~。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10