一尘不染

如何在共享托管环境中保护面向Internet的Elastic Search实施?

elasticsearch

我已经去了对文档elasticsearch和我是一个 风扇,我想用它来处理我的ASP.NET
MVC应用程序的搜索。

但是,这带来了一些有趣的转折。如果ASP.NET MVC应用程序在专用计算机上,则假脱机化Elastic
Search实例并使用TCP传输在本地进行连接将很简单。

但是,我不在ASP.NET MVC应用程序的专用计算机上,而且看起来也不会很快迁移到另一台计算机上。

这样就可以在另一台机器上(在* NIX世界中)托管Elastic Search,我可能会在那里共享托管。

但是,Elastic
Search缺少的最大的事情之一是,它不支持现成的HTTPS和基本身份验证。如果是这样,那么这个问题就不存在了。我只是将其托管在某个地方,并确保启用了一个非常安全的密码和HTTPS(可能带有自签名证书)。

但是事实并非如此。

鉴于此,以一种安全的方式通过Internet公开Elastic Search的好方法是什么?

请注意,我正在寻找一种希望,它不需要编写代码即可为所需的方法提供填充(换句话说,就是编写转发器)。


阅读 249

收藏
2020-06-22

共1个答案

一尘不染

现已提供用于Elasticsearch插件,插件可让您用Jetty的嵌入式实例替换HTTP传输

因为它使用Jetty来处理HTTP传输,所以它可以处理SSL连接以及进行身份验证配置。


(请注意,以下仍然是合理的建议,因为以这种方式抽象出您的操作通常是一种好的做法)

在对ElasticSearch邮件列表进行大量讨论之后,我发现当前的解决方案是将ElasticSearch托管在另一个应用程序层之后,然后保护
层。

道理扎实;ElasticSearch类似于数据库,并且您不会使数据库面向所有人。

我(和其他人)遇到的问题是,因为ElasticSearch使用HTTP作为传输方式,并且使用JSON作为操作语法,所以ElasticSearch旨在面向公众。

然而,当前存在请求添加HTTPS传输支持(假设一个证书被提供的)与碱性(摘要)认证沿。

2020-06-22