当前位置: 首页 > 知识库问答 >
问题:

Spring Boot的Elasticsearch Searchguard配置

芮叶秋
2023-03-14

我试着从Spring Boot应用程序用Searchguard连接到Elasticsearch。

我为TransportClient创建了一个bean。看起来是这样的:

Settings settings = Settings.builder()
    .put(SSLConfigConstants.SEARCHGUARD_SSL_TRANSPORT_KEYSTORE_TYPE, "PKCS12")
    .put(SSLConfigConstants.SEARCHGUARD_SSL_TRANSPORT_KEYSTORE_FILEPATH, keyStore)
    .put(SSLConfigConstants.SEARCHGUARD_SSL_TRANSPORT_KEYSTORE_PASSWORD, keyPassword)
    .put(SSLConfigConstants.SEARCHGUARD_SSL_TRANSPORT_TRUSTSTORE_FILEPATH, trustStore)
    .put("cluster.name", clusterName)
    .build();

TransportClient client = new PreBuiltTransportClient(settings, SearchGuardPlugin.class);

TransportAddress[] addresses = clusterNodes.stream()
    .map(node -> {
         String[] url = StringUtils.deleteWhitespace(node).split(":");
         return new TransportAddress(new InetSocketAddress(url[0], Integer.parseInt(url[1])));
    }).toArray(TransportAddress[]::new);

client.addTransportAddresses(addresses);

但当我的应用程序启动时,我收到一个奇怪的例外:

错误com.floragunn.searchguard.SSL.transport.searchguardsslnettytransport-SSL问题错误:10000410:SSL例程:openssl_internal:sslv3_alert_handshake_failure javax.net.SSL.sslhandshakeexception:错误:10000410:SSL例程:openssl_internal:sslv3_alert_handshake_failure

什么是理由?我应该检查代码的哪一部分?

我有另一个应用程序直接使用ElasticsearchTemplate(只有SearchQuery)。在那里我没有任何问题。

Elasticsearch版本:6.4.3

共有1个答案

冯泓
2023-03-14

修正,当我将searchguard.ssl.transport.enable_openssl_if_available设置为false时:

...
.put(SSLConfigConstants.SEARCHGUARD_SSL_TRANSPORT_ENABLE_OPENSSL, false)
...
 类似资料:
  • <dependencyManagement> <dependencies> <dependency> <!--Import dependency management from SpringBoot--> <groupId>org.springframework.boot</groupId>

  • null 非常感谢你的帮助

  • 我有教育问题: 存在具有windows server 2003(AD)的虚拟机,其中包含用户及其密码。已建立与机器的连接(ip:192.168.56.101:389)。 Web应用程序的目的是使用户能够在AD中更改他的密码。 问题:无法配置到windws server 2003的连接。 我从这个教程开始https://spring.io/guides/gs/authenticating-ldap/

  • 我尝试将springboot应用程序配置为每天登录一个文件,因此我将logback.xml配置为: 所以当我尝试运行我的应用程序时,我得到了这个错误:

  • 本文向大家介绍SpringBoot之Java配置的实现,包括了SpringBoot之Java配置的实现的使用技巧和注意事项,需要的朋友参考一下 Java配置也是Spring4.0推荐的配置方式,完全可以取代XML的配置方式,也是SpringBoot推荐的方式。 Java配置是通过@Configuation和@Bean来实现的:   1、@Configuation注解,说明此类是配置类,相当于Spr

  • 本文向大家介绍详解SpringBoot Schedule配置,包括了详解SpringBoot Schedule配置的使用技巧和注意事项,需要的朋友参考一下 1. 定时任务实现方式 定时任务实现方式: Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少,这篇文

  • 我在SpringBoot应用程序中实现了多语言,在完成以下配置后,我得到的属性文件无法加载 文件夹名称 src/main/resources/i18n/messages 属性文件名 messages_us.properties 在应用程序主类 内部控制器 标题 接受-语言:我们 我明白了 [36mo.s.c.s.ResourceBundleMessageSource[0;39m[2m:[0;39m

  • 我知道在DispatcherServlet之外使用请求范围bean需要一些配置,并且已经阅读了http://docs.spring.io/spring/docs/4.0.x/spring-framework-reference/html/beans.html#beans-factory-scopes-oth,但是还没有成功: 对于Servlet3.0+,这可以通过WebApplicationIni