証明書の設定
LXD Mosaicではインストール直後の状態だと,
この証明書は次の2種類のプロセスから使われています。
- apache2:LXD MosaicのUI部分を担うはApacheとPHPで作られています。
- node:UIのフロントエンドは,
WebSocket経由でバックエンドで動くNodeJSにLXDの状態を問い合わせています。
ApacheだけでなくNodeJSも証明書の設定が必要なことに注意してください。
まずはApacheの設定から。/etc/
で次のように参照されています。
SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
正しい証明書をコンテナからアクセスできる場所に保存したら,systemctl restart apahce2
」
$ lxc exec lxdMosaic systemctl restart apahce2
次にNodeJSのほうです。これは/var/
の中で次のように設定しています。
CERT_PATH=/etc/ssl/certs/ssl-cert-snakeoil.pem
CERT_PRIVATE_KEY=/etc/ssl/private/ssl-cert-snakeoil.key
こちらも単にファイルを変更し,
$ lxc exec lxdMosaic pm2 restart all
あとは正しい証明書を用意するだけです。方法はいくつかありますが,
- Let’
s Encryptなどを利用してlxdMosaicインスタンスから証明書を自動生成する - Let’
s Encryptなどを利用してホストから証明書を自動生成した上で, lxdMosaicからそのファイルを参照する - Let’
s Encryptなどを利用してホストから証明書を自動生成し, ホスト上で動いているリバースプロキシ経由でlxdMosaicにアクセスする - 手作業で証明書を作成し更新する
おそらく今回の例だと1か2が一番簡単です。1はlxdMosaicインスタンスの中にcertbotをインストールすれば良いのですが,
また,lxd_
は80番ポートへのアクセスをすべてHTTPにリダイレクトしてしまっているので,RewriteCond %{REQUEST_
」/.well-known/
」
それを考えると2のほうがまだ簡単かもしれません。ホストが80番ポートを使っているなら,
ひとつ注意しなければならないのは,
3はホスト上にリバースプロキシとなるサーバーをインストールしておいて,lxd_
の中身がWebSocketも含めてHTTPS通信することを期待しているため,lxd_
の中身をそれなりに変更する必要があります。将来的なアップグレードも考えると,
4については,
いずれにせよ,