Отключите проверку имени хоста в настройке Solr SSL, используя самозаверяющий сертификат - PullRequest
0 голосов
/ 31 января 2020

Я использую Solr в качестве поискового сервера и сохраняю все свои данные в Solr. Я использую Solr версии 5.5.2. Solr работает в режиме SSL с самозаверяющим сертификатом с именем хоста в качестве localhost. Я не могу добавить имя хоста здесь, так как во время генерации сертификата у меня нет имени компьютера, на котором он будет установлен.

Я подключаюсь к этому серверу solr из wildfly 10. В wildfly 10 я добавил свой сертификат solr как доверенный, поэтому он не жалуется на самозаверяющий сертификат, но так как мой wildfly находится на другом хосте, я звоню solr, используя имя хоста в URL, и wildfly поднимается ниже ошибки.

Caused by: org.apache.solr.client.solrj.SolrServerException: IOException occured when talking to server at: https://SOLR_HOST:8983/solr/default_core
        at org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod(HttpSolrClient.java:589)
        at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:240)
        at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:229)
        at org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:149)
        at org.apache.solr.client.solrj.SolrClient.query(SolrClient.java:974)
        at org.apache.solr.client.solrj.SolrClient.query(SolrClient.java:990)
        at org.springframework.data.solr.core.SolrTemplate$11.doInSolr(SolrTemplate.java:512)
        at org.springframework.data.solr.core.SolrTemplate$11.doInSolr(SolrTemplate.java:509)
        at org.springframework.data.solr.core.SolrTemplate.execute(SolrTemplate.java:168)
        ... 66 more
Caused by: javax.net.ssl.SSLException: Certificate for <SOLR_HOST> doesn't match common name of the certificate subject: localhost
        at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:173)
        at org.apache.http.conn.ssl.BrowserCompatHostnameVerifier.verify(BrowserCompatHostnameVerifier.java:61)
        at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:141)
        at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:114)
        at org.apache.http.conn.ssl.SSLSocketFactory.verifyHostname(SSLSocketFactory.java:580)
        at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:554)
        at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:412)
        at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:179)
        at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:328)
        at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:612)
        at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447)
        at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884)
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
        at org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod(HttpSolrClient.java:481)
        ... 74 more

Поскольку я не выставляю мой сервер solr вне моей сети Я просто хочу игнорировать эту ошибку и отключить проверку имени хоста. HttpClient здесь создается Solrj и управляется в SolrTemplate, поэтому у нас нет контроля над добавлением пользовательской стратегии в соответствии с предложением здесь

В основном я хочу отключить проверку имени хоста для моей настройки. Любые предложения по этому вопросу будут высоко оценены.

1 Ответ

0 голосов
/ 31 января 2020

Я выясняю путь из их исходного кода. Solr проверяет свойство ниже при создании объекта HttpClient. Значение по умолчанию - true, если мы установим его в false, тогда Solr не будет проверять имя хоста в SSL.

-Dsolr.ssl.checkPeerName=false

Установите это свойство в свой скрипт запуска wildfly или в любую программу, которую вы запускаете, и она должна работать нормально. Solr больше не будет проверять имя хоста URL с именем хоста самозаверяющего сертификата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...