Reverse Proxy

UCIDM API や管理画面にアクセスするときに HTTPS で通信するためのリバースプロキシを経由します。プロキシサーバーには Nginx を使います。

あらかじめ、お客様のドメイン向けの SSL/TLS サーバー証明書をご用意ください。

  proxy:
    depends_on:
      - admin-ui
      - ucidm-ui
      - api
    container_name: proxy
    image: docker.io/library/nginx:stable
    logging: *default-logging
    ports:
      - 8080:80
      - 4430:443
      - 5443:5443
      - 8443:8443
    restart: unless-stopped
    volumes:
      - ./nginx/conf.d:/etc/nginx/conf.d
      - ./nginx/ssl:/etc/nginx/ssl
      - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
      - ./nginx/common_proxy.conf:/etc/nginx/common_proxy.conf:ro

nginx の設定ファイル

設定ファイルは /opt/osstech/var/lib/ucidm/nginx ディレクトリに配置します。

# ls nginx
common_proxy.conf  nginx.conf  ssl

$ ls nginx/ssl
sample.crt  sample.key

これは動作確認テストのために sample.{crt,key} という自己証明書を使った設定をしています。お客様でご用意いただいた SSL/TLS サーバー証明書を nginx/ssl 配下に配置します。

そして Configuring HTTPS servers を参考にして次の2つの設定を行います。

ssl_certificate /etc/nginx/ssl/${サーバー証明書};
ssl_certificate_key /etc/nginx/ssl/${秘密鍵};

UCIDM API の起動後、次のように HTTPS で通信してレスポンスを取得できるかで確認できます。

$ curl -i https://localhost:8443/status/version
HTTP/1.1 200 OK
...
{"serverVersion":"b67adba","idFederationClientVersion":"","mongoDBVersion":"7.0.4","rabbitMQVersion":"3.12.2"}