前回 ubuntu18.04LTSServerにLAMP環境をインストールする手順を記述しました。

今回は、Certbotを使用して、Ubuntu 18.04でApache用の無料SSL証明書を取得し、証明書を自動的に更新するように設定します。

環境

マシン環境 Hyper-V仮想マシン
OS ubuntu18.04LTS
参考にしたサイト https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-phpmyadmin-on-ubuntu-18-04

初めに

これまでの、LAMP環境のインストールでApacheのインストールが済んでいます。

また、ダイナミックDNSを利用するで説明されているようにグローバルアドレスからApacheサーバーにアクセスできるようになっているはずです。
(今回は、officeyuai.0am.jpというドメインを取得している前提です)

そのうえでこの記事をお読みください。

Certbotのインストール

Let’s Encryptを使用してSSL証明書を取得するための最初の手順は、サーバーにCertbotソフトウェアをインストールすることです。

まずは、リポジトリを追加します。

sudo add-apt-repository ppa:certbot/certbot

次に、パッケージリストを更新して、新しいリポジトリのパッケージ情報を取得します。

sudo apt update

次に、CertbotのApacheパッケージをインストールします。

sudo apt install python-certbot-apache

Certbotは使用する準備ができましたが、Apache用にSSLを設定するためには、Apacheの設定の一部を確認する必要があります。

SSL証明書を設定する

Certbotは、Apache構成で正しい仮想ホストを見つけてSSLを自動的に構成できるようにする必要があります。

具体的には、/etc/apache2/sites-available/officeyuai.0am.jp.confファイルに

ServerName officeyuai.0am.jp

と記述されていることを確認します。

構成の構文を確認します。

sudo apache2ctl configtest
*********
Syntax OK”

”Syntax OK”と出ればOKです。

設定ファイルの構文が正しければ、Apacheを再ロードします。

sudo systemctl reload apache2

これでCertBotは正しいVirtualHostブロックを見つけて更新できるようになりました。

ファイアウォールを介したHTTPSの許可

現在のファイアーウォールの状態を調べます。

sudo ufw status
状態: アクティブ

To                         Action      From
--                         ------      ----
Apache Full                ALLOW       Anywhere
OpenSSH                    ALLOW       Anywhere
Apache Full (v6)           ALLOW       Anywhere (v6)
OpenSSH (v6)               ALLOW       Anywhere (v6)”

”状態: 非アクティブ”になっている場合は

sudo ufw enable

としてアクティブにします。

Apache Fullがない場合

sudo ufw allow 'Apache Full'

とします。

SSL証明書を取得する

Certbotは、プラグインを使用してSSL証明書を取得するさまざまな方法を提供します。
Apacheプラグインは、Apacheを再設定し、必要に応じて設定を再読み込みします。
このプラグインを使用するには、次のように入力します。

sudo certbot --apache -d officeyuai.0am.jp -d www.officeuai.0am.jp

certbotは–apacheプラグインで実行されます。

初めての場合は、メールアドレスを入力して利用規約に同意するよう求められます。

メールアドレスは”/etc/apache2/sites-available/officeyuai.0am.jp.conf”に記載されたものにします。

その後certbotは、Let’s Encryptサーバーと通信し、証明書を要求しているドメインを確認することを実行します。

この時に、登録したMyDNSのデータが利用されます。

成功した場合は、HTTPS設定をどのように設定するかを尋ねられます。

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
——————————————————————————-
1: No redirect – Make no further changes to the webserver configuration.
2: Redirect – Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you’re confident your site works on HTTPS. You can undo this
change by editing your web server’s configuration.
——————————————————————————-
Select the appropriate number [1-2] then [enter] (press ‘c’ to cancel):

Http接続された場合、Httpsに強制的にリダイレクトさせるために[2]を選択します。

証明書がダウンロード、インストール、ロードされます。

Windowsマシンから接続する

Hyper-V親コンテナのWindows10のマシンからブラウザで接続する場合には、hostsファイルに登録が必要です。
windows10の場合”C:\Windows\System32\drivers\etc\hosts”になります。
<LANアドレス> <ドメイン名>とします。

192.168.10.??? officeyuai.0am.jp