Symbol-bootstrapのHTTPS対応をhttps-portalを使用しない方式へ修正

Symbol-bootstrap（以下、「bootstrap」とします。）とhttps-portalを使ってノードのHTTPS化をしていましたが、bootstrap側でHTTPS対応してくれたため、https-portalを使用しないように環境を修正しました。

もともとhttps-portalはLet's Encryptの証明書を使用していて、bootstrapも同様の対応が可能です。

* 前提とする環境

Symbol-bootstrap:1.1.3

* 通信要件

インターネットからノードに対して以下のポート宛ての通信が許可されている必要があります。
TCP80
TCP3001
※https-portalでHTTPS化している環境であれば、この通信はすでに許可されていると思います。


* カスタムプリセットファイルの編集

bootstrap側でHTTPSを有効にするためカスタムプリセットファイル（my-preset.ymlなど）を編集して、以下のセクションを追加します。

```my-preset.yml
httpsProxies:
    -
        excludeDockerService: false
```

* bootstrapの再起動

あとはこんな感じでbootstrapを再起動して動作確認。
`symbol-bootstrap stop`
`symbol-bootstrap start -p mainnet -a dual -c my-preset.yml --upgrade`

`docker ps`で`https-proxy`というコンテナが立ち上がっていることが確認できると思います。

* 証明書の準備が整うまで待つ

bootstrapが起動した後、初回は証明書発行のプロセスが自動的に動くのでしばし待ちます。
そのうち、以下のようなメッセージがでればHTTPS通信が可能になります。

```
https-proxy     | Certificate signed!
https-proxy     | Signed certificate for <ノードのドメイン>
https-proxy     | [cont-init.d] 20-setup: exited 0.
https-proxy     | [cont-init.d] 30-set-docker-gen-status: executing...
https-proxy     | [cont-init.d] 30-set-docker-gen-status: exited 0.
https-proxy     | [cont-init.d] done.
https-proxy     | [services.d] starting services
https-proxy     | [services.d] done.
```

https-proxyのログは以下のコマンドでも確認できます。
`journalctl -f CONTAINER_NAME=https-portal`

* https-portalの後処理

私のノードではhttps-portalをサービス化していたので、後処理でサービスの削除などを行いました。

```
systemctl disable https-portal
systemctl disable https-portal
rm /etc/systemd/system/https-portal
systemctl daemon-reload
systemctl reset-failed
```

* 証明書の更新

証明書の更新は以下のコマンドでできます。
`symbol-bootstrap renewCertificates`
※パスワード入力が必要です。

試しにやってみましたが、まだ期間が残っているので更新は不要な旨のレスポンスでした。
なお、更新は証明書の期限の30日前から可能になります。
強制的に更新するオプションに`--force`がありますが、試していません。

```
$ symbol-bootstrap renewCertificates
                         _             _         _                    _         _
  ___  _   _  _ __ ___  | |__    ___  | |       | |__    ___    ___  | |_  ___ | |_  _ __  __ _  _ __
 / __|| | | || '_ ` _ \ | '_ \  / _ \ | | _____ | '_ \  / _ \  / _ \ | __|/ __|| __|| '__|/ _` || '_ \
 \__ \| |_| || | | | | || |_) || (_) || ||_____|| |_) || (_) || (_) || |_ \__ \| |_ | |  | (_| || |_) |
 |___/ \__, ||_| |_| |_||_.__/  \___/ |_|       |_.__/  \___/  \___/  \__||___/ \__||_|   \__,_|| .__/
       |___/                                                                                    |_|
? Enter the password used to encrypt and decrypt custom presets, addresses.yml, and preset.yml files. When providing
a password, private keys will be encrypted. Keep this password in a secure place! ****************
2022-01-29T08:00:02.579Z info     Password has been provided
2022-01-29T08:00:02.630Z info     Generating config from preset 'mainnet'
2022-01-29T08:00:02.631Z info     Using assembly 'dual'
2022-01-29T08:00:02.911Z info     User for docker resolved: 1001:1001
2022-01-29T08:00:02.911Z info     Running image using Exec: symbolplatform/symbol-server:gcc-10-1.0.3.1 openssl x509 -enddate -noout -in node.crt.pem -checkend 2592000
2022-01-29T08:00:03.747Z info     The node.crt.pem certificate for node node will expire on Apr 12 14:53:56 2022 GMT. No need to renew it yet.
2022-01-29T08:00:03.747Z info
2022-01-29T08:00:03.748Z info     The SSL certificates are up-to-date. There is nothing to upgrade.
2022-01-29T08:00:03.748Z info
```


* 参考

カスタムプリセットの参考

https://github.com/fboucquez/symbol-bootstrap/blob/9ec559aa12d9e997795232641c35ec87b98564c3/test/unit-test-profiles/https-proxy.yml

カスタムプリセットの参考

https://github.com/fboucquez/symbol-bootstrap/blob/e63d2e2905750ddd1e195bf2aea5855f0a348e39/docs/presetGuides.md

symbol-bootstrap renewCertificatesの参考

https://github.com/fboucquez/symbol-bootstrap/blob/dev/docs/renewCertificates.md