HTTPS対応のリバースプロキシを作成
事前にlibnss3-toolsのインストールが必要
$ sudo apt install libnss3-tools
$ sudo apt install mkcert
$ mkcert -install
証明書は以下に作成される
~/.local/share/mkcert/rootCA.pem ・・・ローカルのルート証明書
~/.local/share/mkcert/rootCA-key.pem ・・・秘密鍵
また、作成されたルート証明書は自動でChromeとFirefoxの信頼済みストアに格納されるらしい。
$ mkcert wasabi.local
作成されたサーバー証明書をコピー
$ mkdir certs
$ cp wasabi.local-key.pem certs/key.pem
$ cp wasabi.local.pem certs/cert.pem
リバースプロキシに証明書をセットして起動
code:docker
# 証明書格納用フォルダをボリュームマウントし、環境変数でそれらのファイルを指定
$ docker run -ti -d --name ez-gate -p80:80 -p443:443 \
-e PROXY_TO=wasabi.local,172.17.0.2:80 \
-e CERT_FILE=/mnt/cert.pem \
-e KEY_FILE=/mnt/key.pem \
-v ${PWD}/certs:/mnt \
neogenia/ez-gate:latest
# コンテナログを確認
$ sudo docker logs -f ezgat
CERT_FILEとKEY_FILEはコンテナ内のパスを指定する。
172.17.0.2:80はWebサーバのDocker内のIPアドレス。
問題点
この方法だと[https://wasabi.local/apache-docker.png]で表示できるようになったが、問題点もある。
Docker上でWebサーバを動作させているPCでないと表示できない。
WebサーバのDocker内のIPアドレスを指定しているので、IPアドレスが変わると表示できなくなる。