NISとのSSL通信(https://〜)は現状、使わないのが一般的なんでしょうか?

xiaca ()
NISとの通信にSSL通信(https://〜) は現状、使わないのが一般的なんでしょうか?

はじめまして

最近、NEM-sdkを触りはじめてサービスっぽいものを作成しようとしているのですが、本番環境にて動作確認したところ NISとの通信で「SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol」というエラーがでてしまいました。
調べたところホスティング先にFirebase Hostingを選んでおり、「http://〜」 の通信が「https://〜」 に自動的に変換されるようでした。

上記のエラーは、Firebase Hostingからhttp通信が許容されているサーバに移行することで回避しましたが、SSL通信の使用 有無について疑問に思ったのでトピックを立てさせて頂きました。

例えばスマホアプリだとSSL通信じゃないと通信できないと思います。その場合は、自WebAPIを用意し てアプリ-WebAPI間はhttps、WebAPI-NIS間はhttpを使用したりするのか?または、こういう方法でAPIを呼んでるよとか、SSL通信でき るNISもあるよ!等ありましたらご教授ください。

him0 ()
NIS が、https 通信を前提としない理由は、NEM のアプリケーションレベルでメッセージに署名しているため改ざんの恐れはない、また、漏洩しても結局ブロックチェーンで公開される情報なので、問題ないからです。
この点は、bitcoin も同じ様に bitcoind は基本的に、http のプロトコルで通信する仕組みになっています。

> アプリ-WebAPI間はhttps、WebAPI-NIS間はhttpを使用したりするのか

アプリケーションサーバと NIS をホスティングする場合
1. SSL の証明書はドメインに対して発行されるものなので、アプリケーションサーバをホスティングしているドメインに対して SSL 証明書を発行する。
2. NIS はローカルネットワークのみアクセスできるように設定する。
3. クライアントtoアプリケーションサーバは https 通信、アプリケーションサーバtoNIS(LAN内で通信)はhttpで通信する。
このような構成にするのがよいと思います。

また、アプリケーションサーバを構築する必要がない場合(サーバがロジックを実行する必要が無い場合)、つまり、単純にNISのAPIがhttpsで使いたいだけであれば、NIS の設定で、SSL 認証を読み込ませて https 通信に対応する方法があります。
https://forum.nem.io/t/add-https-to-an-nis-node-on-debian/7659
こちらは、自分は試したこと無いので、うまくいくか分かりません。

xiaca ()
返信ありがとうございます!

たしかに、NEMがメッセージに著名して改ざん検知できるなら、苦労して証明書を取得する必要はないですね・・・。

アプリケーションサーバを用意する場合の事例も参考にします!

xiaca ()
直近でズバリなTweerがあったとは。
なるほど、今はhttps だと報酬が貰えないのですね・・・

今後、NISのhttps通信でわからないことがあったら相談してみます。

xiaca ()
おお!ありがとうございます!その記事はまだ確認してませんでした。

SSL通信できるノードもあるんですね。利用させてもらいます!


2018/01/26追記
上記、紹介頂いたノードを使わせてもらいました。
https://github.com/scrpgil/nemfolio