二度やったんでだいたいの流れはわかりました。表題の通りなのですが、順番にやれば何とかなります。手順は多いですが、難しくはないのでやってみてください。需要があるかどうかは知りませんけどね。
前提
Ubuntu サーバー 20.04 を使います。すでに WordPress などを Apache2 を利用して表示できるようになっている。そこから始めます。 Apache のインストールなどは他にもたくさん書かれている情報があるので、そちらを参照してもらうとして省略させていただきます。
Apache サーバーのホームディレクトリは、 /var/www/html が標準ですね。ここに WordPress などを展開しても良いのですが、 /var/www/your_domain というフォルダを新たに作ってそこに WordPress を展開しました。 WordPress のインストールも省略させていただきます。
さて順番に始めますね。
Apache 仮想ホストの設定
あとで certbot というスクリプトをインストールして利用します。 certbot が問題なく動くために Apache 仮想ホストを設定します。設定ファイルを /etc/apache2/sites-available/your_domain.conf という名前で作ります。いうまでもありませんが、 your_domain の部分は各自のドメイン名を使います。私は kaizawa.jp というドメイン名を使いましたので、 /etc/apache2/sites-available/kaizawa.jp.conf というファイルを作りました。このファイルの中身は次の通りです。
<VirtualHost *:80>
ServerAdmin ≪メールアドレス≫
ServerName your_domain
ServerAlias www.your_domain
DocumentRoot /var/www/your_domain
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
作っただけでは Apache サーバーは認識してくれないので、 Apache サーバーに認識させます。
$ sudo a2ensite your_domain.conf
このコマンドで、 Apache サーバーは仮想ホストを認識します。更に、デフォルトでは /etc/apache2/sites-available/000-default.conf というファイルがあって /var/www/html をアクティブにしています。これを無効にしてやります。
$ sudo a2dissite 000-default.conf
これで良いですね。 your_domain が有効になりました。念のためシンタックスチェックをかけます。
$ sudo apache2ctl configtest
エラーが出なければ OK です。 Apache を再起動させましょう。
$ sudo systemctl restart apache2
certbot のインストール
さて自動的にセキュア接続の処理をしてくれる certbot ですが、標準ではインストールされていないので、インストールします。 apt でインストールできますので簡単です。 certbot と使用するライブラリーをインストールします。
$ sudo apt install -y certbot python3-certbot-apache
ファイアウォールの設定
おそらく 80 番のポートは空いていて 442 番 (https) は閉じているはずですね。下記のコマンドを実行します。二行目は重複する設定を削除しているものです。
$ sudo ufw allow 'Apache Full'
$ sudo ufw delete allow 'Apache'
certbot の実行
$ sudo certbot --apache
SSL 証明書を入手する必要があります。基本 certbot がやってくれるので、こちらは質問に答えていくだけで OK です。 Apache ではなく、 Nginx を使っている場合は、ここで引数が変わるはずです。詳しく調べていないのですが、 Welcome to the Certbot documentation! — Certbot 1.22.0 documentation に引数の事も書いてあったと思います。参照してみてください。英語ですが …
さて、上記コマンドを入力するといくつか質問が出てきます。実はその部分記録を取っていなかったので、ここには転記できません。 your_domain を答える部分。そして各種質問事項。 5 〜 6 問あったはずです。英文ですが平易な文章なのでゆっくり読んで答えてください。最後に Congratulations! というメッセージとともに、あなたのサイトは SSL 接続できるようになったよ。と教えてくれます。ひとまずこれで OK ですね。
証明の期限と自動通知の確認
Let’s encrypt は 90 日で期限切れとなります。期限が切れる度にスクリプトを実行しても良いのですが、人間忘れますからね、気がついたらセキュア接続できなくなっていたっていうのは悲しいですね。 certbot はその辺もちゃんと考えてあります。一日に二度自動的にサーバーに問合せを出してくれるようになっているんですね。それを確認してみます。
$ sudo systemctl status certbot.timer
● certbot.timer - Run certbot twice daily
Loaded: loaded (/lib/systemd/system/certbot.timer; disabled; vendor preset: enabled)
Active: active (waiting) since Thu 2021-12-09 20:25:30 JST; 1 day 1h ago
Trigger: Sat 2021-12-11 01:52:05 JST; 4h 4min left
Triggers: ● certbot.service
12月 09 20:25:30 ubuntu2 systemd[1]: Started Run certbot twice daily.
一行目を実行してみたら、私の環境ではその下の部分が表示されました。アクティブになってますね。次の通知が 12/11 の 01 : 52 に行われるようです。
以上簡単でしたがセキュア接続までの説明でした。参考になれば幸いです。
投稿者プロフィール

最新の投稿
ノン・カテゴリ2025年1月12日2 つになってしまった
Mac2025年1月10日iPhone の保護フィルムが割れた
ノン・カテゴリ2025年1月2日正月早々、階段から落ちた
Windows2024年12月18日Windows11 のログインについて
