26

私はElastic Searchのドキュメントを調べてきました。私はファンであり、ASP.NET MVC アプリの検索を処理するために使用したいと考えています。

ただし、これにはいくつかの興味深いひねりがあります。ASP.NET MVC アプリケーションが専用のマシン上にある場合、Elastic Search のインスタンスをスプールし、TCP トランスポートを使用してローカルに接続するのは簡単です。

ただし、私は ASP.NET MVC アプリケーション専用のマシンを使用していません。また、すぐに専用のマシンに移行する予定もありません。

そのため、Elastic Search を別のマシン (*NIX の世界) でホストすることになり、おそらくそこで共有ホスティングを使用することになるでしょう。

ただし、Elastic Search に欠けている最大のものの 1 つは、そのままでは HTTPS と基本認証をサポートしていないという事実です。もしそうなら、この質問は存在しません。どこかにホストして、信じられないほど安全なパスワードと HTTPS が有効になっていることを確認します (自己署名証明書を使用する可能性があります)。

しかし、そうではありません。

では、Elastic Search を安全な方法でインターネット経由で公開するにはどうすればよいでしょうか?

希望するメソッドに shim を提供するためのコードを記述する必要がない (つまり、フォワーダーを記述する) ものを探していることに注意してください。

4

2 に答える 2

24

HTTP トランスポートを Jetty の組み込みインスタンスに置き換えることができる elasticsearchのプラグインが利用可能になりました。

Jetty を使用して HTTP トランスポートを処理するため、SSL 接続を処理できるだけでなく、認証用に構成することもできます。


(注意してください。以下は、この方法で操作を抽象化するのが一般的に良い方法であるという点で、依然として妥当なアドバイスです)

ElasticSearch メーリング リストで何度も議論した結果、現在の解決策は、別のアプリケーション レイヤーの背後で ElasticSearch をホストし、そのレイヤーを保護することであることがわかりました。

理由はしっかりしています。ElasticSearch はデータベースに似ており、データベースをすべての人に公開することはありません。

私 (および他の人) がつまずくのは、ElasticSearch は HTTP をトランスポートとして使用し、JSON を操作の構文として使用するため、ElasticSearch は一般向けであることを意図しているということです。

ただし、現在、基本 (ダイジェスト) 認証とともに HTTPS トランスポート サポート (証明書が提供されていることを前提) を追加する要求があります。

于 2011-04-25T04:39:33.720 に答える
6

Linux で iptables を使用したり、Windows である種のパーソナル ファイアウォールを使用したりして、何らかの方法でマシンをファイアウォールで保護し、appserver からのトラフィックのみを許可する必要があります。

ただし、これにより serverfault.com の領域に移動します-これに対するプログラミングソリューションはありません。

于 2011-02-10T17:13:43.783 に答える