Xibo チュートリアル Vol.09「VPS環境でLet's Encryptを使ってのxibo https化 」
前回記事から2ヶ月!私にしては早いほうですね。頭も夏休みになっていてエンジンかけて思い出すのに時間かかりましたが、標題のとおりVPSの方もhttps化できましたので、やり方まとめます。先日の自己証明書より今やこっちのやり方の方が一般的でしょう。
Let's Encryptは前回書いた通り、無料で使えるSSL証明書です。ただし、90日毎に証明書更新する必要があります。
前回VPSにインストールした記事書いたとき(Vol.07)は、V4.0.のxiboでさくらVPS1GBでもパフォーマンス的に全く問題なかったのですが、その後今のV4.1.にあげたところ、サーバが頻繁に落ちるようになりました。最初はサーバスペックの問題とは思っていなくてサーバーをインストールし直したりもしたのですが、xiboの推奨サーバ環境がメモリ4GB以上というのを見つけました。ローカルのサーバはしょぼいマシンでもメモリ8GBぐらいは積んでるからここがネックになろうとは思っていなかった。本当は4GBにすればいいのでしょうが、月額費用増えるのでまずは2GBにしてみたところ以降は全く落ちていません!

ではVol.07の httpのxiboができたところからはじめます。
今回もコンソールでの作業となります。xiboのサーバにシリアルコンソールでつなぎます。
ここからは前回のVol.08自己証明書と同じところも多いのですが、一連の流れは書いておきます。
まずは dockerを止めます
cd /opt/xibo
sudo docker compose down
https用のdocker ymlをつくります。テンプレはあるのでコピー
sudo cp cms_custom-ports.yml.template cms_custom-ports.yml
今までのdocker ymlはひとまずリネームしてバックアップとっておきます
sudo mv docker-compose.yml docker-compose.bak
viでhttps用の ymlを編集します
sudo vi cms_custom-ports.yml
直すのは以下2点
cms-xmrの
ports:- "65500:9505"
→ "9505:9505"
cms-webの
ports:- "65501:80"
→ "127.0.0.1:8080:80"
docker composeでこのファイルを読み込ませます
sudo docker compose -f cms_custom-ports.yml up -d
次にapache2の環境を整えます
sudo apt install apache2
sudo a2enmod ssl
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod headers
ここから、自己証明書とは作業が異なります。apacheの設定ファイルを編集します。
sudo vi /etc/apache2/sites-available/000-default.conf
次の4行を加えて下さい
ProxyPreserveHost On
RequestHeader set X-Forwarded-Proto expr=%{REQUEST_SCHEME}
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
apcheを再起動して設定を読み込ませます。
sudo service apache2 restart
次にLet's Encryptを使うためにcertbotをインストールします。
sudo apt install snapd
sudo snap install core
sudo snap refresh core
sudo apt-get remove certbot
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
ここまで来て言うの遅かったかもしれませんが、このサーバに使うドメインはご自分で用意してこの時点で名前解決している状態にしておいてください。そうしないと certbot通りません。うちの場合は以前このサーバで使ったドメインがそのまま放置してあったのでそれ使いました(nxt3.active-d.net)。以下のコマンドでそれ入れるとみなさんがコピペして入れそうなので www.xibossl.com という仮ドメイン入れています。ここはみなさんで用意したドメイン入れてくださいね!
sudo certbot --apache -d www.xibotestssl.com
エラーなく通ればこちらで完了となります。みなさまのドメインの頭にhttps://でいけるはずです。警告も出ません!冒頭のxiboのログイン画面がそれです。
xiboサーバコントロールパネル 設定の ネットワークタブにある HTTPSを強制 にチェック入れると強制的にhttpsにリダイレクトされるようになります。私はやりたい人がやればいい派なので、このチェックは入れませんけどね。

冒頭に90日で証明書更新という話書きましたが、証明書更新の話は省略します!こちらの記事にやり方ありますので期限せまったらやってください。あるいは90日の手前で自動スクリプトで更新してもいいですけどね!無料ですからこれぐらいはがんばろうね!
無料のSSL証明書Let’s Encryptを設定・更新・自動更新する方法
https://blog.proglus.jp/105/#SSL-2
今回の作業はxiboオフィシャルのknoeledge baseを参考にしています。
https://community.xibo.org.uk/t/xibo-cms-with-docker-on-ubuntu-22-04/9392
というわけで、数年にわたって書いてきた、xiboのチュートリアルですが、ここで一通り完結です。
今後はバージョン上がってなんかあったり、書きたいトピック出てきたら追加していきますのでよろしく!