Имя хоста не соответствует теме сертификата, предоставленной партнером после изменения библиотеки - PullRequest
0 голосов
/ 18 февраля 2020

После обновления зависимостей нашего проекта с apache HttpClient 4.5.10 до 4.5.11 мы продолжаем получать эту ошибку в нашей локальной среде.

Мы используем hystrix, поэтому само соединение использует HttpAsyncClient (4.1.2).

Производственные среды работают нормально после обновления, поэтому я полагаю, что есть проблема с нашим сертификатом, который почему-то не появляется при использовании 4.5.10 для конфигурация контекста ssl.

Кто-нибудь знает, что может отсутствовать в сертификате?


   Caused by: javax.net.ssl.SSLPeerUnverifiedException: Host name 'domain' does not match the certificate subject provided by the peer (CN=domain, O=Something, ST=Some-State, C=NL)
        at org.apache.http.nio.conn.ssl.SSLIOSessionStrategy.verifySession(SSLIOSessionStrategy.java:209)
        at org.apache.http.nio.conn.ssl.SSLIOSessionStrategy$1.verify(SSLIOSessionStrategy.java:188)
        at org.apache.http.nio.reactor.ssl.SSLIOSession.doHandshake(SSLIOSession.java:354)
        at org.apache.http.nio.reactor.ssl.SSLIOSession.isAppInputReady(SSLIOSession.java:503)
        at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:120)
        at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:162)
        at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:337)
        at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315)
        at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:276)
        at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104)
        at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:588)

(я уже проверял это, и, похоже, проблема не соответствует)

Имя хоста не соответствует теме сертификата, предоставленной одноранговым узлом, но идеально соответствует

1 Ответ

1 голос
/ 19 февраля 2020

Фактическая проблема заключалась не в самом домене, а в том, что это был частный домен, и DefaultHostnameVerifier предполагает, что это домен ICANN. Изменение верификатора имени хоста исправляет это.

Это было вызвано изменением с 4.5.10 на 4.5.11 из-за этого коммита: https://github.com/apache/httpcomponents-client/commit/858946348f5d34f9a8b4caf3c5f054721e647983#diff -842a4260950ada415839175b42257751

Это фактически исправляет проблему проверки, но ошибка не совсем ясна, поэтому я надеюсь, что это поможет кому-то в будущем.

...