2

http 要求を使用して Solr サーバーに接続するのは簡単でした。しかし、https リクエストを使用して接続しようとすると、エラーが発生します。

ソルサーバー:https://localhost:8443/solr/#/

次のコードでサーバーに接続するために、Javaでsolr apiを使用してみました:

SolrServer server = new HttpSolrServer("https://localhost:8443/solr/#/");

しかし、次の例外があります。

Exception in thread "main" org.apache.solr.client.solrj.SolrServerException: IOException occured when talking to server at: https://localhost:8443/solr/#
at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:413)
at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:181)
at org.apache.solr.client.solrj.request.QueryRequest.process(QueryRequest.java:90)
at org.apache.solr.client.solrj.SolrServer.query(SolrServer.java:301)
at app.SolrQuerying.main(SolrQuerying.java:45)
Caused by: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
at com.sun.net.ssl.internal.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:352)
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:397)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:148)
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:150)
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:121)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:575)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:425)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:732)
at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:352)
... 4 more

誰かがこれに対する解決策を持っている場合は、共有してください。

4

1 に答える 1

1

エラーは次のログに表示されます。

原因: javax.net.ssl.SSLPeerUnverifiedException

これは、あなたの SSL 証明書が認証局によって検証されていないということです。自己署名証明書を作成したのではないでしょうか? デフォルトでは、Java は認証局によって検証された証明書をチェックし、検証されていない場合はエラーになります。その理由はセキュリティです。

Java 接続で自己署名証明書を使用する方法を調べてください。

于 2013-01-29T03:29:19.923 に答える