gpt4 book ai didi

java - 使用带有自签名证书的 Elasticsearch Java REST API

转载 作者:行者123 更新时间:2023-11-30 10:22:41 24 4
gpt4 key购买 nike

我想使用 Java REST API (RestHighLevelClient) 通过 HTTPS 与 Elasticsearch 5.6 服务器通信。但是,服务器的证书是自签名的,当我尝试连接时它会抛出 SSLHandshakeException。

有没有办法配置 REST 客户端以接受自签名证书?

最佳答案

我使用自定义 Java Key Store 使它正常工作。这是我的代码:

CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(username, password));

final SSLContext sslContext = SSLContexts.custom()
.loadTrustMaterial(new File("my_keystore.jks"), keystorePassword.toCharArray(),
new TrustSelfSignedStrategy())
.build();


RestClient client = RestClient.builder(new HttpHost(host, port, scheme)).setHttpClientConfigCallback(httpClientBuilder -> httpClientBuilder
.setDefaultCredentialsProvider(credentialsProvider)
.setSSLContext(sslContext)
).build();

为了创建 keystore ,我通过 Firefox 下载了域的证书,并使用了:

keytool -import -v -trustcacerts -file my_domain.crt -keystore my_keystore.jks -keypass password -storepass password

关于java - 使用带有自签名证书的 Elasticsearch Java REST API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47334476/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com