(2021.2.27 記)
以前記載した無償e-LearnigツールMoodle(詳細はリンク参照)導入の延長で、HTTPサイトをLet’s Encyptの無料SSL/TLSサーバ証明書を用いてHTTPS化させていく話です。
Let’s Encyptのクライアントツール「certbot」をインストールしていくわけですが、執筆時現在、ストレートにインストールしようとすると、下図のようなサポート切れエラーが出ます。
※「サポートが切れてるのでインストールできません。公式サイトで他のやり方を参照してください。」というニュアンスの内容
certbot公式サイトを覗いてみると、もう最新版は利用できいようです。
公式サイトに回避手法が載ってはいるのですが、これまたわかり辛い・・・
ということで、色々試して成功したパターンを紹介しようという趣旨です。
この記事はSSL/TLSサーバ証明書を発行できるようにする内容なので、Moolde関係なく参考になるかと思います。
(設定時間:30分)
0.構築環境
・さくらVPS(メモリ:1GB、CPU:2コア、SSD:100GB)
※有料契約
※ハードがどのような環境でも構築手順は大きく変わりません
・LinuxOS:Ubuntu18.04
※最新は20.04ですが、何故かSSL化がうまくいかなかったので、
個人的に実績がある18.04を選定しました
・Apache:2.4
・MySQL:5.7
・PHP:7.2
・Moodle:3.8
※当Verの必須環境は、Apache2以上、MySQL5.6以上、PHP7.1以上
※執筆時の最新Verは3.9ですが、リリース間もないということもあり
安定性という意味でひとつ前の3.8を導入しました
1.snap 経由で certbot を導入
snap 経由で certbot を導入していきます。
コンソール画面を開き、コマンドを投入していきます。
①エディタツール「gedit」のインストール
sudo apt-get install gedit
②snap 経由で certbot をインストール
sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
③サーバ証明書発行対象のサイトドメインを登録
※途中E-mailを入力するフェーズがあり、入力必須
※選択肢は全てYes(y)を選択
sudo certbot certonly --apache -d サイトドメイン名
④対象ドメインのサーバ証明書を発行
sudo certbot renew --dry-run
うまく発行されると、下図のように「success」が表示されるはずです。
ドメインを変更した際は、手順③と④を同じように実行することで、再度対象ドメインに対して証明書が発行されます。
続いて次手順で再度Apacheの設定ファイルの変更していきます。
2.Apache2 の設定ファイル修正
HTTPSでサイトが開くよう、Apache2の設定ファイルを修正してきます。
コンソール画面でコマンドを投入していきます。
① 管理者権限で gedit 起動
※通常ユーザだと対象ファイルが更新できないため
sudo gedit
②対象ファイル「default-ssl.conf」を gedit にドラッグ&ドロップ
③対象ファイルの追記、修正
・VirtualHost
default → サーバのグローバルIP
・ServerAdmin
localhost → サーバのドメイン
※図では、元の行を「#」でコメントアウトし、修正文を新たに記載しています
・SSLCertificateFile のロケーション変更
/etc/letsencrypt/live/ドメイン名/cert.pem
・SSLCertificateKeyFile のロケーション変更
/etc/letsencrypt/live/ドメイン名/privkey.pem
・SSLCertificateChainFile のロケーション変更
/etc/letsencrypt/live/ドメイン名/chain.pem
※図では、元の行を「#」でコメントアウトし、修正文を新たに記載しています
④「Ctrl」+「S」キーでファイルを保存 → ファイルを閉じる
3.Apache2 の設定変更
HTTPSでWEB画面が開くよう、Apache2の設定を変更していきます。
コンソール画面でコマンドを投入していきます。
①Apache2にSSLモジュールを追加
sudo a2ensite default-ssl
②SSLモジュールの有効化
sudo a2enmod ssl
③Apache2再起動
sudo systemctl restart apache2
④https://サイト名 で起動確認ができればOK
※先にHTTPでページを作成、またはMoodleをインストールしていると、画面が崩れる場合があります。(次手順で、Moodleの設定変更手順のみ載せておきます。)
4.Moodleの設定変更
アドレスがHTTPからHTTPSに変わったため、Moodleの設定ファイルを修正していきます。
※Moodleのインストールを行った者のみ参照ください。
コンソール画面でコマンドを投入していきます。
① 管理者権限で gedit 起動
※通常ユーザだと対象ファイルが更新できないため
sudo gedit
②Moodleフォルダ直下にある「config.php」ファイルをドラッグ&ドロップ
③下図赤枠の「wwwroot」の値を変更
※今回HTTPS化したため、アドレスとhttps://から始まる値に変更している
※ドメイン変更時も同様にこのアドレスを変更すればOK
④https://サイト名 で起動確認ができればOK
5.最後に
certbotで証明書が自動更新されそうな動きをしていますが、まだ更新時期が来ていないため検証できていません・・・。
自動更新がダメなら再度発行すれば問題ないと思いますが、また更新時期がきたら状況を追記しようと思います。→問題なく自動更新されています。
以上。
(不明点あればコメント頂ければ、可能な限りお答えします。)
コメント
Let’sEncryptで簡単通信暗号化【LAMP構成】【certbot】【SSL/TLS】【Ubuntu18.04】 – 脱サラのすすめ
mndchhgtll http://www.g5b03588cy06h5ju9noyhy49393c2ftgs.org/
amndchhgtll
[url=http://www.g5b03588cy06h5ju9noyhy49393c2ftgs.org/]umndchhgtll[/url]