https4 Apache верблюд дает имя хоста не соответствует теме сертификата, предоставленной узлом - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь установить соединение https с Apache Camel в Spring DSL.следуя этому руководству: https://access.redhat.com/documentation/en-us/red_hat_jboss_fuse/6.2/html/apache_camel_component_reference/IDU-HTTP4

, а также: http://camel.apache.org/http4.html

я создал следующий код:

<sslContextParameters id="sslContextParameters" xmlns="http://camel.apache.org/schema/blueprint"> 
        <trustManagers>
            <keyStore resource="keyStore/keyStore.jks" password="changeit"/>                   
        </trustManagers>                
</sslContextParameters>

и мой маршрут:

<route id="axis_camera">
    <to uri = "https4://my_ip_adress?sslContextParametersRef=sslContextParameters"
</route>

и

<bean id="http-ssl" class="org.apache.camel.component.http4.HttpComponent">
<property name="sslContextParameters" ref="sslContextParameters"/>
</bean>

при запуске этого на apache servicemix я получаю:

javax.net.ssl.SSLPeerUnverifiedException: Host name my_ip_adress does not 
match the certificate subject provided by the peer (CN=axis-accc8ec51452, 
O=Axis Communications AB)

Теперь я могу видеть в сертификате, что это имя хоста не определено в теме.Я видел, что сертификаты нельзя редактировать, поэтому мой вопрос заключается в том, как настроить этот код так, чтобы он читал правильное имя хоста?

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

это было довольно неприятно, но с помощью @ShellDragon я искал бин, который разрешает все имена хостов.этот бин является x509HostnameVerifier.поэтому в своем коде я добавил это здесь:

<bean id="http-ssl" class="org.apache.camel.component.http4.HttpComponent">
    <property name="sslContextParameters" ref="sslContextParameters"/>
      <property name="x509HostnameVerifier" ref = "x509HostnameVerifier"/>
    </bean>

и добавил это к моему URL:

https4://my_ip_adress?sslContextParametersRef=sslContextParameters&amp;x509HostnameVerifier=x509HostnameVerifier
0 голосов
/ 28 февраля 2019

Это дикое предположение, основанное на доступной информации, но попробуйте.Ваш сертификат CN - axis-accc8ec51452, вы должны подключаться к этому имени хоста, а не my_ip_address.

Чтобы сопоставить имя хоста axis-accc8ec51452 с my_ip_address, либо обновите его в своем преобразователе DNS, либо добавьте его вваш hosts файл (* nix: /etc/hosts | Windows: c:\Windows\System32\Drivers\etc\hosts)

...