certbotのインストール
sudo apt install certbot python3-certbot-nginx
Certbotで取得すっぞ
私の場合kiwi-bird.xyz
からkiwibird.tokyo
への引っ越しのため、以下の4つのドメインに対応するワイルドカード証明書を発行します。1つの証明書で複数のドメインを認証することが出来るのでLetsencryptは神ですね。しかもただやぞ
kiwi-bird.xyz
*.kiwi-bird.xyz
kiwibird.tokyo
*.kiwibird.tokyo
さて、以下のようにスクリプトとしてまとめておくと以後の更新が楽です。今は良いですが、3ヶ月後の更新時、あなたがこの手順を綺麗サッパリ忘れていることを私は知ってますから!
# !/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だけ!!
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
最後に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
お疲れ様でした~。