どのようにJavaでElasticsearch RestClientのv6.7.0のために無効にSSL検証へ

ビーチ:

私は、SSHトンネルの背後にあるelasticsearchインスタンスに接続しようとしています。elasticsearchインスタンスのドメインは、*.ap-south-1.es.amazonaws.comローカルトンネルで、Iは、を介して接続している間localhost:9201

ここで私はelasticsearchに接続するために使用しているコードがあります

RestHighLevelClient(RestClient.builder(HttpHost("localhost", 9201, "https")))

私は次のエラーを取得しています

javax.net.ssl.SSLPeerUnverifiedException: Host name 'localhost' does not match the certificate subject provided by the peer (CN=*.ap-south-1.es.amazonaws.com)

私はPHP-Elasticsearchで働いていたとき、私はこのエラーを持って、私が使用してそれを修正しました

$esClient->setSSLVerification(false);

私は、Java RestClientのための同様の方法を見つけることを期待していました。

リティックManchanda:

このために、あなたが提供した名前のホスト名を確認し、設定を無効にする必要があります。これは、ApacheでのHTTPClientのエラーで、あなたはこのようなsetSSLHostnameVerifier方法で確認されるホスト名を仮想化する必要があります

val builder = RestClient.builder(host).setHttpClientConfigCallback { httpAsyncClientBuilder ->
            httpAsyncClientBuilder.setSSLHostnameVerifier { _, _ -> true }
        }

これは常に真としてホスト名を確認するためにあなたの設定を上書きします

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=231190&siteId=1