elasticsearch 開啓密碼驗證,讓你的數據不再裸奔

官方給的消息是從6.8 和 7.1 開始默認提供。這對於那些裸奔在互聯網的搜索服務來說,絕對是一個好消息。

配置起來也很簡單。

第一步:切換到elastsearch的目錄下,使用下列命令生成證書

bin/elasticsearch-certutil cert -out config/elastic-certificates.p12 -pass ""

第二步:打開config/elasticsearch.yaml,在尾部添加下面一行代碼:

 xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

然後啓動elasticsearch

第三步:新打開一個終端,使用cd命令切換到elasticsearch目錄,然後使用 bin/elasticsearch-setup-passwords auto 命令自動生成好幾個默認用戶和密碼。 如果想手動生成密碼,則使用 bin/elasticsearch-setup-passwords interactive 命令。一般默認會生成好幾個管理員賬戶,其中一個叫elastic的用戶是超級管理員。

第四步:驗證一下。打開瀏覽器,輸入我們的elasticsearch的網址,比如本地的http://localhost:9200/ ,然後會彈出一個輸入框,讓我們輸入賬號和密碼,輸入後則可以看到一些介紹。

登錄後

修改密碼命令如下

curl -H "Content-Type:application/json" -XPOST -u elastic 'http://127.0.0.1:9200/_xpack/security/user/elastic/_password' -d '{ "password" : "123456" }'

 

TransportClient client = null;
			Settings settings = Settings.builder().put("cluster.name", "集羣名")
					.put("client.transport.sniff", true).put("xpack.security.user", "elastic:123456").build();
			settings = Settings.builder().put("xpack.security.enabled", true)
					.put("xpack.security.user", "用戶名:密碼").put("xpack.security.transport.ssl.enabled", true)
					.put("xpack.security.transport.ssl.keystore.path", "上邊p12文件路徑")
					.put("xpack.security.transport.ssl.truststore.path", "p12文件路徑")
					.put("xpack.security.transport.ssl.verification_mode", "certificate")
					.put("cluster.name", "tank-test-es").put("client.transport.sniff", true).build();
			client = new PreBuiltXPackTransportClient(settings);

注意,這裏一定要用PreBuiltXPackTransportClient,
這個類可以引入xpack的包得到
    compile 'org.elasticsearch.client:x-pack-transport:7.8.1'

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章