<Hazm Blog />

Ubuntu22.04でNginxにLetsEncryptのSSL証明書を設定する

Cover Image for Ubuntu22.04でNginxにLetsEncryptのSSL証明書を設定する
Hazm
Hazm

Googleカレンダー集計サービスStackerProのSSL化をするためにLet'sEncryptでSSL証明書を設定してみました。

今まではSakuraInternerで RapidSSL DV証明書を取得していましたが、サーバー側でCSRを生成したり、Certificateを生成したり、結合したりが結構ややこしいし面倒なので、今回はcertbotを使用してSSL証明書を設定してみます。

certbotを使用すると、無料でLet'sEncryptのSSL証明書が発行できる上、Nginxの設定も書き換えてくれるという素敵な代物です。

概念的には下記の画像のようになります。

certbotを使用してNginxにSSL証明書を設定する

手順

今回公式ではなく別のサイトの手順を参考に実施しました。

1. 必要なパッケージのインストール

certbotをインストールしていきます。

sudo apt install certbot python3-certbot-nginx

2. Nginx周りの設定確認

StackerProの場合は、/etc/nginx/conf.d/stackerproにサイトの設定を入れていました。

ドメイン名の指定がなされていることを確認します。

server_name stacker.work www.stacker.work;

3. Firewallの設定確認

443番ポートが空いていることを確認します。

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
443                        ALLOW       Anywhere                  
443 (v6)                   ALLOW       Anywhere (v6) 

4. 証明書の取得

sudo certbot --nginx -d stacker.work -d www.stacker.work

これを実施すると、Nginxの設定に以下の内容が書き込まれます。

人生楽ですね。

  listen 443 ssl; # managed by Certbot
  ssl_certificate /etc/letsencrypt/live/stacker.work/fullchain.pem; # managed by Certbot
  ssl_certificate_key /etc/letsencrypt/live/stacker.work/privkey.pem; # managed by Certbot
  include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
  ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
server {
  if ($host = stacker.work) {
    return 301 https://$host$request_uri;
  } # managed by Certbot

  listen 80;
  server_name stacker.work;
  return 404; # managed by Certbot
}

5. 自動更新タスク

勝手にプロセスが動作しており、自動更新を行なってくれます。

sudo systemctl status certbot.timer

dry-runで更新が正常に行えるかを事前にチェックできます。

sudo certbot renew --dry-run

以上の手順でSSL化を実現できました。

StackerProのSSL化

Googleカレンダー集計サービスStackerProのSSL化を実施しました。

StackerProを使うと、Googleカレンダーに記録したイベントの集計が簡単にできます。
私自身は毎日の稼働をGoogleカレンダーに記録しておき、月末の請求書を作成する際にStackerProを使用して集計しています。

無料で使えるのでぜひ!