SymbolテストネットをSSL化してみた

殴り書きしたので分かりづらい部分がありましたらそっと教えて下さいm(_ _)m
※この記事は2022/03/30 21:30くらいに更新しました。

## 注意喚起
Twitter上で注意喚起がありました。
<font color="Red">IPアドレスと変更したポート番号をセットで公開するべきではない</font>とのことなので
本記事では色々と修正させて頂きます。

以下の設定になっている体で進めさせていただきます。
参考にされる場合は自身の環境に合わせて置き換えてください。
↓
IPアドレスは<font color="Blue">123.456.7.8</font>
Port番号は<font color="Blue">56789</font>

# SymbolテストネットをSSL化してみた
## この記事の対象者
Toshiさんが上げてくれた動画を観て、既にtestnetノード作成が済んでいる人が対象です。
↓
『Symbol テストネットを爆速で建てる！コピペで簡単づ〜さんに感謝』
https://www.youtube.com/watch?v=1MIf_uLkeJ4&t=819s



## ドメインを逆引き
まずはサーバーのIPアドレスからドメインを逆引きします。
↓
https://www.cman.jp/network/support/ip.html
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532264/b3dd7ba3-4838-e964-b9e6-c47664b3432b.png)


管理情報照会実行を押すと以下の画面に切り替わります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532264/ecbe6f46-d336-4d03-a38c-570d4b576f0f.png)

入力の逆引き　または　正引き　の値を使用するのでどこかにコピーしておいて下さい。
こんな感じの値
↓
例）<font color="Blue">xxx123456.contaboserver.net</font>


## ここからteraterm
teratermでテストネットノードにログインします。

ホスト：test8@<font color="Blue">123.456.7.8</font>
TCPポート：<font color="Blue">56789</font>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532264/a6e25884-b7ef-3016-9c01-27833b9b9d7f.png)

※teratermが使えない場合はコマンドプロンプトを使用しても大丈夫です。その場合のコマンドはこんな感じ。
ssh -pポート番号 test8@IPアドレス
```
ssh -p56789 test8@123.456.7.8
```

### docker-composeを停止
稼働中のdocker-composeを停止します。
```
cd symbol-bootstrap
symbol-bootstrap stop
```


### docker-compose.yamlを編集
:::note warn
現在のbootstrapではdocker-compose.yamlを編集する必要はないので以下の記述は削除します。
:::

~~SSL化に必要な情報を追記していきます。~~

~~vi target/docker/docker-compose.yml~~

~~ファイルの最後に以下の内容を付け足してください。~~
~~↓~~

~~https-proxy:~~
~~container_name: https-proxy~~
~~image: steveltn/https-portal:1.19~~
~~stop_signal: SIGINT~~
~~ports:~~
~~- '80:80'~~
~~- '3001:443'~~
~~environment:~~
~~DOMAINS: xxx123456.contaboserver.net -> http://rest-gateway:3000~~
~~WEBSOCKET: 'true'~~
~~STAGE: production~~
~~SERVER_NAMES_HASH_BUCKET_SIZE: 128~~
~~restart: on-failure:2~~
~~depends_on:~~
~~- rest-gateway~~

~~DOMAINS: <font color="Red">xxx123456.contaboserver.net</font>の部分はサーバーのIPアドレスからドメインを逆引きした際にコピーした値を設定して下さい。~~

### custom.ymlを編集
```
vi custom.yml
```

host名を123.456.7.8からxxx123456.contaboserver.netに変更し、httpsProxies:を追記して下さい。
xxx123456.contaboserver.netはそれぞれの環境に合わせて修正して下さい！

```
nodes:
    - friendlyName: test.villhell-node
      host: xxx123456.contaboserver.net
      maxChainBytesPerSyncAttempt: 50MB
      messageSynchronizationMaxResponseSize: 5MB
      blockDisruptorMaxMemorySize: 1000MB

httpsProxies:
    - excludeDockerService: false
```

### custom.ymlの設定を反映
```
symbol-bootstrap config -c custom.yml --upgrade
```

### docker-composeの設定を反映してbootstrapを再起動
```
symbol-bootstrap compose --upgrade
symbol-bootstrap run -d
```

healthcheckしてみます。
```
symbol-bootstrap healthCheck
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2532264/28a6cbb2-2e8d-594c-6ddd-9c9a2b711cad.png)

https-proxyの起動が確認できればOKです！
ノードリストに反映されるには少し時間がかかると思います。

## teratermにログインできなくなった場合
contaboでOSの再インストールが可能なようです。づ～さんに感謝！
https://twitter.com/dusanjp/status/1507690344661786628?ref_src=twsrc%5Etfw

## OSの再インストール後、rootログインできない場合
rootではなくadminに変更される場合があるようです。
上で紹介したづ～さんのツイッターにも記載されています。
その場合はadminでログインしましょう。
↓
admin@123.456.7.8 (←こんな感じ？)

## ■参考リンク
Symbol node 起ち上げ（ふりーはんど版）【"b" にも対応してます】
https://qiita.com/dusanjp/items/7410700885deea0f5b0b

Symbol Testnet node 構築備忘録
https://qiita.com/dusanjp/items/53fdac033e6df5f75139

Symbol testnet 構築後 https 対応 | うにやさん
https://www.u2yasan.com/ja/content/20200213/79

## 公開鍵認証・パスワード認証を禁止
https://webkaru.net/linux/ssh-password-auth-prohibit/
https://qiita.com/kazokmr/items/754169cfa996b24fcbf5

ノードリスト
https://symbolnodes.org/nodes_testnet/