Exploratory オンプレミス・サーバーにHTTPS(SSL接続)を設定する方法

このノートはオンプレミス・サーバーを利用している方が、サーバーにHTTPS(SSL接続)を設定する方法を紹介するノートです。

ホステッド・サーバーを利用している方は、こちらのノートをご参考ください。

1. SSL証明書の設置

オンプレミス・サーバーの圧縮ファイルを展開してできた、「exploratory」 というディレクトリの直下にある 「ssl」ディレクトリに、SSL証明書ファイルと秘密鍵ファイルを置きます。

「exploratory」ディレクトリの下に「ssl」ディレクトリがない場合は、「ssl」ディレクトリを作成し、その中にSSL証明書ファイルと秘密鍵ファイルを配置してください。

SSL証明書ファイルには、以下のようにSSL証明書と中間証明書の2つの証明書エントリーが含まれていることを確認してください。この2つのファイルが別々の場合は、中間証明書をコピーしてSSL証明書の後に貼り付けてください。

-----BEGIN CERTIFICATE-----
            :
    (SSL certificate)
            :
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
            :
  (Intermediate certificate)
            :
-----END CERTIFICATE-----

以下、SSL証明書ファイルをfullchain.pem、秘密鍵ファイルをprivkey.pemであるものと仮定して、SSLの設定方法を説明いたします。

オンプレミス・サーバーをホスト名ではなくIPアドレスで運用して、かつHTTPS (SSL接続)を設定する場合は、Exploratory サーバー用の自己署名のSSL証明書ファイルを、サーバー名では無くIPアドレスで作成する方法を参照してください。

2. オンプレミス・サーバー自体のSSL接続の設定

docker-compose.ymlの設定

"exploratory" ディレクトリの直下にある、docker-compose.ymlファイルのnginxの項目の中で、以下のような変更を行います。

  1. nginxが、先程のsslディレクトリを読み込めるように、volumesの項目リストに、- './ssl:/etc/nginx/ssl'という文字列をそのまま追加します。この文字列はそのまま変更せずに貼り付けてください。
  2. SSL接続(HTTPS)のデフォルトのポート番号である、443を開くため、元の- '8080:80'といった行の代わりに、- '443:443'とします。

元の設定:

  nginx:
    image: 'nginx:1.15.0-alpine'
    volumes:
      - './default.conf:/etc/nginx/conf.d/default.conf:ro'

    ...その他の設定...
    ports:
      -  '8080:80'

変更後の設定:

default.confの設定

"exploratory" ディレクトリの直下にある、default.conf(nginxウェブサーバーの設定ファイル)を編集して、SSLを使用した設定にします。

  1. SSL接続(HTTPS)のデフォルトのポート番号である、443を使用するため、元のlisten 80といった行の代わりに、listen 443;とします。
  2. SSLを有効化するため、ssl on; を追加します。また、SSL証明書ファイルと、秘密鍵ファイルの指定を以下のように追加します。設定の中のファイル名fullchain.pem, privkey.pemはご使用のファイル名に合わせて変更してください。パス名 ("/etc/nginx/ssl") はそのまま変更せずに使用してください。
    ssl on;
    ssl_certificate    /etc/nginx/ssl/fullchain.pem;
    ssl_certificate_key    /etc/nginx/ssl/privkey.pem;
  1. サーバー内で生成するURLで使うプロトコルをhttpsにするため、proxy_set_header X-Forwarded-Proto httpの行を変更して、proxy_set_header X-Forwarded-Proto httpsとします。

元の設定の例:

 server {
    listen       80;
    server_name  localhost;

    client_max_body_size 100m; # increased this for data share.
    location / {
        proxy_pass http://exploratory:3000/;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto http;
    }
}

変更後の設定の例:

3. オンプレミス・サーバーの再起動

設定の変更が終わったら、Exploratory サーバーを再起動します。

docker-compose down
docker-compose up -d

再起動が完了したら、ブラウザからオンプレミス・サーバーに https:// で始まるURLを使ってアクセスし、接続を確認してください。

Export Chart Image
Output Format
PNG SVG
Background
Set background transparent
Size
Width (Pixel)
Height (Pixel)
Pixel Ratio