背景
(2020年4月頃に下書きを書いたまま公開できていなかったので、今は解消しているかもしれないですが投稿します)
Quorumをリモートで立ち上げ、RemixをChromeで接続しようとするとエラーでうまく接続できない。どうもjson-rpcポートに対してlocalhost以外ではHTTPSでの接続が必須の模様。
ApacheやNginxはHTTPS化は確立されて簡単だが、Quorumのjson-rpcポートのHTTPS化についての情報がなかなか見つけられない。
ちょっと無理矢理だけど、Quorumの外側でHTTPS/HTTP変換してつなげるようにしてみる。
今回はQuorumで確かめたがたぶんEthereum/Gethでも同じかな。
(もっといい方法があればご教授ください)
動作環境
Quorumノード
今回はAzureのVM上にubuntuを立ち上げ、その上のdocker上でquorumを走らせているので、少しややこしい。下記のような構成となっている。
stack | ポート関係 |
---|---|
quorum | json-rpc :8545 |
docker | expose portで8545->22000 |
ubuntu | 上記の22000ポート |
azure vm | nsgで22000を許可 |
StunnelでHTTPS化
Stunnelとは
Stunnelはプロキシ的にクライアントとプログラムの間に介在してTLS暗号化/復号化するもの。ApacheやNginx、Squidなどでもできるだろうがよりシンプルにできそう。
参考:Stunnlel
これにより
Browser(Remix)--HTTPS-->Stuunel--HTTP-->Quorum
という構成でQuorumには変更を加えず、RemixからはHTTPSでJSON-RPCでやり取りが可能。