Elasticsearch第二章:Elasticsearch6.4.2破解xpack白金認證,以及kibana登入
- 替換掉原本的Elasticsearch的modules裡面的x-pack-core-6.4.2.jar
- 申請許可證。上傳安裝許可證
- 完事。
docker exec -it es6.4.2 /bin/bash cd modules/x-pack-core/
現在看看怎麼破解 我先吧這個jar下載到本地,無論過程如何反正只要替換掉這個jar包其中的兩個class檔案就行了
yum update && yum install lrzsz sz x-pack-core-6.4.2.jar使用反編譯檔案開啟x-pack-core-6.4.2.jar檔案,之後另存為java檔案 Luyten的下載地址(可以用下面的連結下載 後續結尾也會附上私有云連線)
替換成下面的程式碼
LicenseVerifier.java
package org.elasticsearch.license; import java.nio.*; import org.elasticsearch.common.bytes.*; import java.util.*; import java.security.*; import org.elasticsearch.common.xcontent.*; import org.apache.lucene.util.*; import org.elasticsearch.core.internal.io.*; import java.io.*; public class LicenseVerifier { public static boolean verifyLicense(final License license, final byte[] encryptedPublicKeyData) { return true; } public static boolean verifyLicense(final License license) { return true; } }
package org.elasticsearch.xpack.core; import org.elasticsearch.common.io.*; import java.net.*; import org.elasticsearch.common.*; import java.nio.file.*; import java.io.*; import java.util.jar.*; public class XPackBuild { public static final XPackBuild CURRENT; private String shortHash; private String date; @SuppressForbidden(reason = "looks up path of xpack.jar directly") static Path getElasticsearchCodebase() { final URL url = XPackBuild.class.getProtectionDomain().getCodeSource().getLocation(); try { return PathUtils.get(url.toURI()); } catch (URISyntaxException bogus) { throw new RuntimeException(bogus); } } XPackBuild(final String shortHash, final String date) { this.shortHash = shortHash; this.date = date; } public String shortHash() { return this.shortHash; } public String date() { return this.date; } static { final Path path = getElasticsearchCodebase(); String shortHash = null; String date = null; Label_0157: { shortHash = "Unknown"; date = "Unknown"; } CURRENT = new XPackBuild(shortHash, date); } }
改完之後就需要吧java編譯成class檔案
需要把lib下面的lib/elasticsearch-6.4.2.jar lucene-core-7.4.0.jar elasticsearch-core-6.4.2.jar的依賴下載下來然後把剛才的依賴加上。重新吧java編譯成class檔案
javac -cp elasticsearch-6.4.2.jar;lucene-core-7.4.0.jar;x-pack-core-6.4.2.jar;elasticsearch-core-6.4.2.jar LicenseVerifier.java javac -cp elasticsearch-6.4.2.jar;lucene-core-7.4.0.jar;x-pack-core-6.4.2.jar;elasticsearch-core-6.4.2.jar LicenseVerifier.java
然後把兩個class檔案替換掉剛才的那兩個,覆蓋掉之前未修改的檔案,然後在重新打成jar包
jar -cvf x-pack-core-6.4.2.jar
然後進入es 。rz上傳剛才新做的jar 替換掉剛才的那個jar包,然後重啟es
docker exec -it es6.4.2 /bin/bash cd modules/x-pack-core/ mv x-pack-core-6.4.2.jar x-pack-core-6.4.2.jar.back rz rm x-pack-core-6.4.2.jar.back exit docker restart es6.4.2
jar包替換好了之後。就需要去申請lincese,申請地址:https://license.elastic.co/registration,開啟之後這樣。自己申請一下
之後會發送郵件,收到郵件裡面有個下載連結。吧json下載下來。
修改json內的東西。修改license的版本和期限,type改為platinum白金版,expiry_date_in_millis期限設為2855980923000
修改好了之後 json也準備好了。現在準備上傳,上傳有好幾種方式。我這裡就直接用kibana上傳就行了方便。
若先配置證書再設定密碼就會導致Kibana無法連線到Elasticsearch,開啟kibana 先申請30天試用。開啟es 開啟密碼
docker exec -it es6.4.2 /bin/bash cd config vi elasticsearch.yml
編輯yml
cluster.name: "docker-cluster" #外網訪問 network.host: 0.0.0.0 #開啟xpack認證 xpack.security.enabled: true # minimum_master_nodes need to be explicitly set when bound on a public IP # set to 1 to allow single node clusters # Details: https://github.com/elastic/elasticsearch/pull/17288 discovery.zen.minimum_master_nodes: 1 #跨域 http.cors.enabled: true http.cors.allow-origin: "*"
然後 退出 重啟。重啟之後進入bin,修改密碼
elasticsearch-setup-passwords interactiveok改完了。登入es驗證一下
現在就來修改一下kibana的配置,es設定了密碼 kibana就訪問不進去了
docker exec -it kinaba6.4.2 /bin/bash cd config/ vi kibana.yml
將下面的引數新增進去(密碼和使用者名稱需要加引號,否則不然可能docker啟動不了kibana)
elasticsearch.username: 'elastic' elasticsearch.password: '123456'
【其他】如果啟動不了kibana,就需要單獨容器內的配置檔案複製出來 在替換進去修改,這裡以kibana舉例
docker cp kinaba6.4.2:/opt/kibana/config/kibana.yml . vi kibana.yml docker cp kibana.yml kinaba6.4.2:/opt/kibana/config/kibana.yml docker restart kinaba6.4.2
解釋:吧kibana的配置檔案複製到當前目錄下 修改好了之後 替換回去 在重啟容器
登入進來之後 升級白金版本上傳剛才改過的json
ok完成。
也可以看一下es的到期時間ok!到這裡就完成了
下面附帶直接替換的jar和class檔案
http://www.nutirachel.top:5000/sharing/p2oONIxtn
密碼:laozizuishuai