Mashuサーバーの前段にHTTPSに対応するリバースプロキシ―を導入することでHTTPS化できます。
Mashuサーバーは、単独で Docker コンテナとして機能しますが、この場合の Mashu サーバーの接続は、暗号化されていない HTTP による通信です。
Mashuサーバーを設置する組織の方針によっては、HTTPSによる通信が必要となるケースもあるかと思います。このような場合は、Mashuサーバーの前段に HTTPSに対応するリバースプロキシ―を導入することで解決します。
Docker Compose と Nginx を使用した簡単な例をご紹介します。HTTPSを使用するためには、サーバー証明書が必要となります。証明書の用意を含めて、詳細は、組織のネットワークやITインフラのご担当の方にご相談されることをお勧めします。
構成
Windows での構成例です。Tree コマンドの出力になります。
C:\USERS\●●\WORK
└─nginx-proxy\
│ docker-compose.yaml
│
└─config\
└─nginx\
│ nginx.conf
│
└─ssl\
_.intra.robon.co.jp.crt
_.intra.robon.co.jp.key
_.intra.robon.co.jp.crt と _.intra.robon.co.jp.key は、証明書ファイルと鍵ファイルになりますので、別途ご用意ください。
設定ファイル
・docker-compose.yaml ファイル
services:
nginx:
image: nginx:latest
container_name: nginx
ports:
- 443:443
volumes:
- ./config/nginx:/etc/nginx/conf.d
mashu:
image: roboninc/mashu
container_name: mashu
ports:
- 3000:3000
・nginx.conf ファイル
server {
listen 443 ssl;
server_name localhost.intra.robon.co.jp;
ssl_certificate /etc/nginx/conf.d/ssl/_.intra.robon.co.jp.crt;
ssl_certificate_key /etc/nginx/conf.d/ssl/_.intra.robon.co.jp.key;
location / {
proxy_pass http://host.docker.internal:3000;
}
}
設定ファイルの詳細は、Docker Compose、Nginx のリファレンスをご確認下さい。
特に、nginx.conf のホスト名やファイル名は、動作環境に合わせて変更する必要があります。
実行
・起動時
$ docker compose up -d
Network nginx-proxy_default Creating
Network nginx-proxy_default Created
Container mashu Creating
Container nginx Creating
Container mashu Created
Container nginx Created
Container mashu Starting
Container nginx Starting
Container mashu Started
Container nginx Started
・停止時
$ docker compose down
Container mashu Stopping
Container nginx Stopping
Container mashu Stopped
Container mashu Removing
Container mashu Removed
Container nginx Stopped
Container nginx Removing
Container nginx Removed
Network nginx-proxy_default Removing
Network nginx-proxy_default Removed
コマンドプロンプトの場合は、表示が乱れますので、上記は、bash を使用していますが、コマンドプロンプトからの実行でも表示以外は問題ありません。