为 Elasticsearch 创建的 RestHighLevelClient 不会使用 SSL

问题描述

我正在尝试连接到现有的 Elasticsearch 实例。该实例已设置并运行良好,我可以通过 https://localhost:9200 下的浏览器访问它来确认。我使用的是 Spring Data Elasticsearch 4.1.2 版,我正在遵循 https://docs.spring.io/spring-data/elasticsearch/docs/current/reference/html/#elasticsearch.clients.rest 的官方说明。

不幸的是,在启动应用程序时,elasticsearch 实例的初始健康检查失败,因为代码试图使用 http 而不是 https:

o.s.w.r.f.client.ExchangeFunctions       : [377e90b0] HTTP HEAD http://localhost:9200/

因此,我在 ClientConfiguration 中添加了“.usingSsl()”,但它似乎没有任何效果,我只是不明白为什么。 “有趣”的事情是,如果我按照此处 (https://docs.spring.io/spring-data/elasticsearch/docs/current/reference/html/#elasticsearch.clients.reactive) 的描述实现反应式客户端,https 会突然起作用并且应用程序启动得非常好。但是,我想使用常规的高级客户端。

你能帮我修改一下配置,让它最终使用 https 而不是 http 吗?

@Configuration
class ElasticsearchClientConfig: AbstractElasticsearchConfiguration() {
    
    @Bean
    override fun elasticsearchClient(): RestHighLevelClient {
           val clientConfiguration = ClientConfiguration.builder()
                 .connectedTo("localhost:9200")
                 .usingSsl()
                 .build();

        return RestClients.create(clientConfiguration).rest();
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)