VPSでLet’s Encryptの無料SSL証明書を取得する

さくらなどのレンタルVPSでサーバを立てたあと、httpsでアクセスしたくなる。無料でssl証明書を取得する方法を解説する。

環境

Ubuntu 20.04

証明書の発行 and 自動更新

証明書の有効期限が90日なので定期的に更新する必要がある。手動でやるのは大変なので更新も自動化する。

初めにDNSとnginxの設定を行いhttpでアクセス可能にする。

  1. $ sudo apt install python3-certbot-nginx
  2. $ sudo certbot --nginx 色々聞かれるが、いい感じに答える。ドメインの選択、Renew the cert(2), HTTPをリダイレクト(2)。
  3. $ sudo certbot renew --dry-run 更新ができるかテスト。
  4. $ sudo systemctl status certbot.timer 自動更新ができているか確認。twice dailyは更新が必要かを確認していて、30日経過すると更新が必要になるらしい。実際に更新をするのは30日ごとになって、30日経過しているかを確かめるのが12時間ごと。(参考)

別のやり方

こちらのやり方だと証明書の自動更新はうまくできなそう。

  1. $ sudo apt install certbot
  2. $sudo certbot certonly --webroot -w /var/www/html -d example.com
  3. /etc/letsencrypt フォルダーのバックアップ (ダウンロードしてローカルに保存するとか)
  4. nginxなどサーバーの設定の変更

certificate and chain は/etc/letsencrypt/live/example.com/fullchain.pemに保存される。

key fileは/etc/letsencrypt/live/example.com/privkey.pemに保存される。

エラー(詰まったところ)

「Problem binding to port 80: Could not bind to IPv4 or IPv6」

80番ポートが空いているとダメらしい。一旦webサーバーを止めれば良い。

参考サイト

Comments

タイトルとURLをコピーしました