TESTNET を構築した後 HTTPS 対応させる方法のひとつとして https-portal を利用します。

( こちらも参考に Symbol testnet サーバー構築 IPv6 HTTPS 対応 )

HTTPS-PORTAL は Nginx + Let's Encrypt  で Docker 上で動きます。
Let's Encrypt での証明書取得から更新まで HTTPS化を完全自動化してくれます。

前提条件:

  • symbol-testnet-bootstarp で稼働
  • ドメイン取得済み、testnetサーバーIPアドレスDNS設定済み

テストネット( api-assembly もしくは api-harvest-assembly ) の稼働を確認した後

sudo docker-compose down

で一度停止させましょう

vi docker-compose.yaml

以下の内容を最後に追記。
( symbol-testnet.u2yasan.com の部分は自身のドメイン・ホスト名に変更してください) 
( エラーなどが起こると Let's Encrypt の制限がかかるので。 STAGE: production にするのは実験後、最後にしましょう)

https-portal:
    image: steveltn/https-portal:1
    ports:
    - "80:80"
    - "3001:443"
    restart: always
    environment:
      DOMAINS: 'symbol-testnet.u2yasan.com -> http://rest-gateway:3000'
      STAGE: production
    volumes:
    - ./ssl-certs:/var/lib/https-portal:rw
    depends_on:
    - rest-gateway
sudo docker-compose up -d

これだけでHTTPS対応完了です。
https://symbol-testnet.u2yasan.com:3001/node/info

証明書は volumes で指定した ssl-certs 以下にできます。

$ ls
api-node  build  data  docker-compose.yaml  mongo  reset-to-nemesis.sh	rest-gateway  runtime-vars  ssl-certs  state  utilities

Docker プロセスは以下のようになっています。

$ docker ps
CONTAINER ID        IMAGE                                                COMMAND                  CREATED             STATUS              PORTS                                       NAMES
787cfa396672        steveltn/https-portal:1                              "/init"                  23 minutes ago      Up 23 minutes       0.0.0.0:80->80/tcp, 0.0.0.0:3001->443/tcp   api-harvest-assembly_https-portal_1
990e41cbc286        nemfoundation/catapult-rest-f2-edge:commit-5334b3b   "ash -c '/bin-mount/…"   39 minutes ago      Up 39 minutes       0.0.0.0:3000->3000/tcp                      api-harvest-assembly_rest-gateway_1
200b344586bb        techbureau/catapult-server:gcc-keccak-0.9.2.1        "bash -c '/bin-mount…"   39 minutes ago      Up 39 minutes       0.0.0.0:7902->7902/tcp                      api-harvest-assembly_api-broker_1
6c5184d53627        techbureau/catapult-server:gcc-keccak-0.9.2.1        "bash -c '/bin-mount…"   39 minutes ago      Up 39 minutes       0.0.0.0:7900->7900/tcp                      api-harvest-assembly_api-node_1
c0e16a48219c        mongo                                                "docker-entrypoint.s…"   39 minutes ago      Up 39 minutes       27017/tcp                                   api-harvest-assembly_db_1

 

Comments