问题描述
我正在尝试通过Java传输客户端安全地连接到弹性搜索(7.8)。我已经使用x-pack保护弹性搜索连接。由于出现以下错误,我无法创建Client对象。
2020-08-13 17:43:24 [main] DEBUG XPackSettings:199 - TLSv1.3 is not supported
java.security.NoSuchAlgorithmException: TLSv1.3 SSLContext not available
at sun.security.jca.GetInstance.getInstance(GetInstance.java:159) ~[?:1.8.0_251]
at javax.net.ssl.SSLContext.getInstance(SSLContext.java:156) ~[?:1.8.0_251]
at org.elasticsearch.xpack.core.XPackSettings.<clinit>(XPackSettings.java:196) [x-pack-core-7.8.1.jar:7.8.1]
我正在使用Java 1.8并支持jar以及下面列出的版本。
elasticsearch-7.8.0.jar r
elasticsearch-cli-7.8.0.jar
elasticsearch-core-7.8.0.jar
elasticsearch-geo-7.8.0.jar
elasticsearch-nio-7.8.1.jar
elasticsearch-rest-client-7.8.1.jar
elasticsearch-secure-sm-7.8.0.jar
elasticsearch-ssl-config-7.8.1.jar
elasticsearch-x-content-7.8.0.jar
x-pack-core-7.8.1.jar
x-pack-transport-7.8.1-1.0.jar
Client client = new PreBuiltXPackTransportClient(Settings.builder().put("cluster.name",esClusterName)
.put("node.name",esNodeName)
.put("xpack.security.transport.ssl.enabled",true)
.put("request.headers.X-Found-Cluster",esClusterName)
.put("xpack.security.user",elasticSerachCred)
.put("xpack.security.transport.ssl.key",elasticSearchSSLKeyLocation)
.put("xpack.security.transport.ssl.certificate",elasticSearchSSLCertificateLocation)
.put("client.transport.sniff",false)
.build()).addTransportAddress(new TransportAddress(InetAddress.getByName(transportServerName),transportPort));
我使用的弹性搜索密钥和证书与为确保安全性而在elasticsearch.yml文件中添加的相同。
注意:-当我不通过tomcat服务器运行此连接代码时,连接工作正常,但使用tomcat服务器则显示此错误。
因此,我很困惑我是否需要在tomcat方面进行一些更改,或者是否有任何弹性搜索支持jar版本不匹配而导致这种情况。
有人可以在这里引导我吗?
谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)