我已经去了对文档elasticsearch和我是一个 大 风扇,我想用它来处理我的ASP.NET MVC应用程序的搜索。
但是,这带来了一些有趣的转折。如果ASP.NET MVC应用程序在专用计算机上,则假脱机化Elastic Search实例并使用TCP传输在本地进行连接将很简单。
但是,我不在ASP.NET MVC应用程序的专用计算机上,而且看起来也不会很快迁移到另一台计算机上。
这样就可以在另一台机器上(在* NIX世界中)托管Elastic Search,我可能会在那里共享托管。
但是,Elastic Search缺少的最大的事情之一是,它不支持现成的HTTPS和基本身份验证。如果是这样,那么这个问题就不存在了。我只是将其托管在某个地方,并确保启用了一个非常安全的密码和HTTPS(可能带有自签名证书)。
但是事实并非如此。
鉴于此,以一种安全的方式通过Internet公开Elastic Search的好方法是什么?
请注意,我正在寻找一种希望,它不需要编写代码即可为所需的方法提供填充(换句话说,就是编写转发器)。
现已提供用于Elasticsearch的插件,该插件可让您用Jetty的嵌入式实例替换HTTP传输。
因为它使用Jetty来处理HTTP传输,所以它可以处理SSL连接以及进行身份验证配置。
(请注意,以下仍然是合理的建议,因为以这种方式抽象出您的操作通常是一种好的做法)
在对ElasticSearch邮件列表进行大量讨论之后,我发现当前的解决方案是将ElasticSearch托管在另一个应用程序层之后,然后保护 该 层。
道理扎实;ElasticSearch类似于数据库,并且您不会使数据库面向所有人。
我(和其他人)遇到的问题是,因为ElasticSearch使用HTTP作为传输方式,并且使用JSON作为操作语法,所以ElasticSearch旨在面向公众。
然而,当前存在请求添加HTTPS传输支持(假设一个证书被提供的)与碱性(摘要)认证沿。