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