爱测未来安全-从SSL加密到Es数据加密再到HTTPS配置到 SSL理解(二)
来源:互联网 发布:钢结构图纸及数据图片 编辑:程序博客网 时间:2024/05/23 16:28
上篇说到https的一个大体情况,本节将实际带带大家操作一下从证书制作到 使用search-guard-2,search-guard-ssl来用https的方式加密我们的 elasticsearch transport端口的数据以及http访问方式。
一: 证书制作
证书制作其实有多种方式,本文采用了 searchguard2官doc的 example来做了制作。
环境准备:
elasticsearch 2.4.1 linux/windows 都一样。无非后续一个是 使用 sgadmin.bat 一个是使用sgadmin.sh
Java环境必备的,elasticsearch本身就要求java环境无序多说,本文是1.8的java
Linux机器一台,本文是 ubuntu14.04
获取当前 elasticsearch2.4.1所支持的 search-guard-2 以及search-guard-ssl 版本
从https://github.com/floragunncom/search-guard/wiki查询到
当前(2017-01-27) elasticsearch2.4.1支持的 sg2 版本是 2.4.1.10 sg-ssl版本是 2.4.1.19
于是我们首先给 es装上这个两个插件。
进入elasticsearch目录下
执行
sudo bin/plugin install -b com.floragunn/search-guard-2/2.4.1.10
sudo bin/plugin install -b com.floragunn/search-guard-ssl/2.4.1.19
以上两个命令经测试是ok的。如有问题,请自行定位网络问题。
此外我们要下载证书制作脚本地址为:
https://github.com/floragunncom/search-guard-ssl
在这个位置 有一个 example-pki-scripts 这里面就是官方的 sg2ssl证书制作示例
我们将这个github工程down下来, 于是加上上面的 es文件夹我们得到如下:
在示例文件夹中,有如下示例文件:
example.sh 是我们需要修改的文件,etc文件中需要我们修改成我们自定义的一些证书配置信息,
clean.sh是可以清理生成的证书文件
其他三个 gen*.sh文件将会在example.sh 中调用;
我们首先看下example.sh中内容,如有不同,请修改成与我这边类似的(请确保知晓修改方法的前提下做修改);
可知,我们大概流程就是调用几个脚本来生成证书。
目前我们是运行的单节点的 es,此外想调通es的 java client使用https方式访问es的transport端口
我们可以修改下example.sh为如下:
上面参数 一个是 kesystore password 一个是ca password,可以自行调试。
此外我们还要修改下 etc下面的关于证书相关自定义配置:
修改如下:
运行example.sh (需要java环境,可在linux下执行,或者带bash的windows,建议linux下执行)
得到以下文件:
生成如上3个我们需要用到的文件;
然后我们再修改下es的配置文件,添加如下配置:
searchguard.authcz.admin_dn:
- CN=itesttech,OU=client,O=client,L=test, C=DE
searchguard.ssl.http.enabled: true
searchguard.ssl.http.keystore_filepath: itesttech-keystore.jks
searchguard.ssl.http.keystore_password: xxxx
searchguard.ssl.http.truststore_filepath: truststore.jks
searchguard.ssl.http.truststore_password: xxx
searchguard.ssl.transport.keystore_filepath: node-0-keystore.jks
searchguard.ssl.transport.keystore_password: xxxx
searchguard.ssl.transport.truststore_filepath: truststore.jks
searchguard.ssl.transport.truststore_password: xxxxx
searchguard.ssl.transport.enforce_hostname_verification: false
此时我们启动elasticsearch,bin/elasticsearch
启动成功后,
我们还需要对 sg2进行初始化索引
进入到 es下plugin目录下 search-guard-2/tools下
将上述的 node-0-keystore.jks 和trustore.jks拷贝到此目录下
此外 在 plugins/search-guard-2/还有个 sgconfig文件,此文件中保存了sg2 内部用户的密码存储的hash值
如果我们想要修改默认的admin账户密码 admin,
则需要通过 tools下的 hash.sh(bat)来生成你需要改的密码的 hash,然后修改sgconfig/sg_internal_users.yml
将admin的hash值改成你修改后密码的 hash(由hash.sh -p 命令生成)
chmod +x hash.sh
./hash.sh -p "yourpassword"
然后在tools下 执行
./sgadmin.sh -ts truststore.jks -tspass <yourpass> -ks itesttech-keystore.jks -kspass <yourpass> -cd ../sgconfig -icl - nhnv -p <yourtransportport>
执行完毕 有类似如下结果:
表明执行成功,这个是不需要重启es的 。
此时直接访问我们es:
使用http访问会无法访问,必须使用https,
另外 我们需要输入刚才 在sg_internal_users.yml里修改的密码才能看到es的数据
至此web端的 sg2给es加密,且使用https 就搞定了。
二: JavaClient Transport 使用上述证书访问transport端口
请参考(https://floragunn.com/searchguard-elasicsearch-transport-clients/)
在ESDataSource类中修改setting,setting修改的配置如下:
其中 keystorePath 和trustStorePath为上述制作的证书,自行存放下即可,我们使用trustore.jks和 itesttech-keystore.jks即可。
相关文档见:
https://floragunn.com/searchguard/
https://github.com/floragunncom/search-guard-docs
https://floragunn.com/searchguard-elasicsearch-transport-clients/
以上 ,就是我们使用sg2对我们的es进行加固的初步介绍,sg2官方是承诺永久免费的,所以也是比较推荐大家使用的公网es加固方式。
公众号:itest_forever
CSDN:http://blog.csdn.NET/itest_2016
QQ群:274166295(爱测未来2群)、610934609(爱测未来3群)
- 爱测未来安全-从SSL加密到Es数据加密再到HTTPS配置到 SSL理解(二)
- 爱测未来安全-从SSL加密到Es数据加密再到HTTPS配置到 SSL理解(一)
- filebeat传输到logstash通过ssl加密
- 安全科普:理解SSL(https)中的对称加密与非对称加密
- 安全科普:理解SSL(https)中的对称加密与非对称加密
- 安全科普:理解SSL(https)中的对称加密与非对称加密
- Linux下配置https安全连接(ssl加密连接)
- SSL传输加密HTTPS
- https ssl 加密原理
- IOS Https ssl加密
- 加密,HTTPS,SSL
- AFNetworking 对数据进行https ssl加密
- 从SSL安全传输到iOS证书安全体系1
- 从SSL安全传输到iOS证书安全体系2
- 已经clone的Git项目从Https切换到SSL
- nginx配置ssl加密(单/双向认证、部分https)
- Nginx配置ssl加密(单双向认证、部分https)
- nginx配置ssl加密(单双向认证、部分https)
- init启动Native Service时出现Service xxxx needs a SELinux domain defined;
- Git使用详细教程
- Orange 程序安装
- HTTP协议
- 关于测试流程
- 爱测未来安全-从SSL加密到Es数据加密再到HTTPS配置到 SSL理解(二)
- 如何解决jquery与第三方插件库冲突问题
- 打印出所有的"水仙花数"
- 使用注解(Annotation)实现系统登录检查和权限控制
- qml滚轮事件
- Android应用集成高德地图
- 爬虫的自我解剖(抓取网页HtmlUnit)
- excel比较两组或两列数据的相同项和不同项
- 在内存剖析对象