1. Data Fabric サポートセンター
  2. Mashuサーバー(オンプレミス用)

MashuサーバーをHTTPS化する

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 を使用していますが、コマンドプロンプトからの実行でも表示以外は問題ありません。