【Blogサーバ構築⑩】Certbotでhttps対応(sslの設定)

色々なページのブログの立ち上げ方を見ていると、説明不足だったり情報が古くなっているものもあったので、全10回でブログの立ち上げ方をまとめました。

  1. 【Blogサーバ構築①】Ubuntu MATE 20.04 のSSH接続とファイアウォール設定
  2. 【Blogサーバ構築②】nginxでサーバ化してWordPressをインストール
  3. 【Blogサーバ構築③】WordPressへのログインと初期設定
  4. 【Blogサーバ構築④】”IPアドレス(or ドメイン名)/wordpress” 表示を ”IPアドレス(or ドメイン名)” 表示にしてすっきりさせる
  5. 【Blogサーバ構築⑤】WordPressアドレスを間違えた時の対応
  6. 【Blogサーバ構築⑥】無料/有料ドメインを取得してみる
  7. 【Blogサーバ構築⑦】DDNSサービスでドメイン名とIPアドレスを紐づける
  8. 【Blogサーバ構築⑧】ルーターのポート開放をして、外部からのアクセスを許可する
  9. 【Blogサーバ構築⑨】WordPress アドレス (URL)をIPアドレスからドメイン名に変更する
  10. 【Blogサーバ構築⑩】Certbotでhttps対応(sslの設定) ( ← 本記事 )

今回のまとめ – 簡単に設定が可能なCertbot

 CertbotはLet’s Encryptというサービスの設定を自動で行い、httpのwebサイトをhttps化できるサービスです。無料で使うことができ、Let’s Encryptを使ってSSL証明書のうち一番簡易なドメインの存在証明を発行してくれます。

 こちらがcertbotのページです。instructionsで使用しているソフトと環境を選ぶとやり方が出てきます。

https://certbot.eff.org/

 以下nginxとUbuntu20の場合のやり方を日本語訳したものを載せておきます。nginx内の設定ファイルを自動で書き換えてhttps化してくれるだけでなく、Let’s Encryptへの定期的な通知も設定してくれます。(Let’s Encryptは3か月ごとに証明書を更新する必要があります。)

Certbotを使う前の環境確認

Certbot使用時の確認

 Certbotを使う前の環境確認です。が、これまで記載してきた方法でサーバ構築していただいていれば問題ありません。抜粋すると以下のようになります。

  • コマンドラインが使えること
  • http://のサイトが既にオンライン上にあること
  • port80でアクセスできること
  • サーバにssh接続できてsudoが使えること

Certbotの使用手順(ほとんどただの和訳)

 instructionsの使用手順を書いていきます。ほとんどただの和訳です。

1. まずはsshを用いてsudo権限を使えるユーザでアクセスしましょう。

2. snapdをインストールしましょう。下記コマンドでインストールできるはずです。 snapcraft’s site to install snapd.

$ sudo apt update
$ sudo apt install snapd

3. snapdが最新バージョンか下記コマンドで確認しましょう。(最新でなければ更新されます)

$ sudo snap install core; sudo snap refresh core

4. cerbot-autoや他のcertbot OSパッケージが既にインストールされていればあらかじめアンインストールしておきましょう。削除する場合、例えば下記のように打ちます。

$sudo apt-get remove certbot

5. Certbotをインストールしましょう

$sudo snap install --classic certbot

6. Certbotを実行していく前に、ちゃんとCertbotが動くか確認します。

$sudo ln -s /snap/bin/certbot /usr/bin/certbot

7. Certbotを実行します。

 ①設定ファイルの書き換えなどを自動で行う場合はこちら。途中でこのドメインで良いのかなど聞かれます。二回ほどyを打ち、ドメイン名の番号(1など)を選択して進みます。

$ sudo certbot --nginx

 ②nginxの設定を自分で書き換えたい方はこちら

$ sudo certbot certonly --nginx

 「①」のコマンドで進んだ場合はこのようになります。

 Congratulations!が出れば設定完了です。

8. 自動更新設定の確認

 自動更新設定がうまくいっているかは下記のコマンドを打つことで確認できます。

$sudo certbot renew --dry-run

自動更新コマンドは下記のいづれかの場所に設定されています。

  • /etc/crontab/
  • /etc/cron.*/*
  • systemctl list-timers

9. 有効な証明書が得られているか確認しましょう。

 設定したドメインのサイトにアクセスして、検索バーの一番左に鍵のマークがでてくれば設定されています。

ちなみに、自動で更新されたファイルを見てみると、下記の赤枠部分が変更されています。スペースなどなく、読みずらかったので少し修正したファイルが下記のものです。

etc/nginx/sites-enabled/default

今回は以上です。お疲れ様でした。