2017-05-10 4 views
0

키스트 아 파일이 정상적으로 작동합니다. 아래 명령을 사용하여 테스트했습니다 :Qpid 구성에서 KeyStore 파일을로드 할 수 없습니다.

[email protected] # java -Djavax.net.ssl.trustStore=/tmp/apache-servicemix-7.0.0/deploy/qpid.jks SSLPoke esesslx0ghk.se 9443 
Successfully connected 

이제는 ServiceMix를 사용하여 라우트 큐에 qpid applcation을 배포하고 있습니다. ::

<bean id="amqp" class="org.apache.camel.component.amqp.AMQPComponent"> 
    <property name="connectionFactory"> 
     <bean class="org.apache.qpid.jms.JmsConnectionFactory"> 
     <property name="remoteURI" value="amqps://esesslx0ghk.se:9443?transport.keyStoreLocation=/tmp/apache-servicemix-7.0.0/deploy/qpid.jks&amp;transport.keyStorePassword=test123" /> 
     </bean> 
    </property> 
    </bean> 

을 다음하지만 내 응용 프로그램을 실행할 때, 나는 100 % 있는지 나는 한편으로 지금 ERROR :

2017-05-10 17:30:02,591 | ERROR | mer[CSDP_output] | JmsConnectionFactory    | 226 - qpid-jms-client.jar - 0.0.0 | Failed to create JMS Provider instance for: amqps 
2017-05-10 17:30:02,619 | ERROR | mer[CSDP_output] | faultJmsMessageListenerContainer | 155 - org.apache.servicemix.bundles.spring-jms - 3.2.17.RELEASE_1 | Could not refresh JMS Connection for destination 'CSDP_output' - retrying in 5000 ms. Cause: Failed to create connection to: amqps://esesslx0ghk.se:9443?transport.keyStoreLocation=%252Ftmp%252Fapache-servicemix-7.0.0%252Fdeploy%252Fqpidd.jks&transport.keyStorePassword=test123; nested exception is javax.net.ssl.SSLHandshakeException: General SSLEngine problem 
javax.jms.JMSException: Failed to create connection to: amqps://esesslx0ghk.se:9443?transport.keyStoreLocation=%252Ftmp%252Fapache-servicemix-7.0.0%252Fdeploy%252Fqpidd.jks&transport.keyStorePassword=test123 


Caused by: javax.net.ssl.SSLHandshakeException: General SSLEngine problem 
     at sun.security.ssl.Handshaker.checkThrown(Handshaker.java:1478)[:1.8.0_121] 
     at sun.security.ssl.SSLEngineImpl.checkTaskThrown(SSLEngineImpl.java:535)[:1.8.0_121] 
     at sun.security.ssl.SSLEngineImpl.readNetRecord(SSLEngineImpl.java:813)[:1.8.0_121] 
     at sun.security.ssl.SSLEngineImpl.unwrap(SSLEngineImpl.java:781)[:1.8.0_121] 
     at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:624)[:1.8.0_121] 


Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
     at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:387)[:1.8.0_121] 
     at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292)[:1.8.0_121] 
     at sun.security.validator.Validator.validate(Validator.java:260)[:1.8.0_121] 
     at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324)[:1.8.0_121] 
     at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:281)[:1.8.0_121] 
     at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:136)[:1.8.0_121] 
     at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1501)[:1.8.0_121] 
     ... 21 more 
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
     at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)[:1.8.0_121] 
     at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)[:1.8.0_121] 

를 얻을로

내 설정이다 키스트 파일이 정확하고 경로가 올바르게 구성되어 있습니다. 그러나 응용 프로그램을 데리러 수 없습니다. 이 라인에 문제가 있습니까?

<property name="remoteURI" value="amqps://esesslx0ghk.se:9443?transport.keyStoreLocation=/tmp/apache-servicemix-7.0.0/deploy/qpidd.jks&amp;transport.keyStorePassword=test123" /> 

답변

2

당신은 클라이언트에게 키 저장소를 전달하고 있지만 그게 신뢰 서버 인증서 클라이언트를 알려줍니다 무엇으로 일반적으로 당신은 그것에게 신뢰 저장소를 전달해야한다. 상호 인증을 수행 할 때 키 저장소 만 제공하고 클라이언트는 원격지에 인증서를 제공해야합니다.

첫 번째 제안은 클라이언트에 정의 된대로 transport.trustStoreLocation을 설정하는 것입니다. documentation.

그런 다음 작동하지 않으면 시간을 분해하고 SSL handshake의 디버깅을 수행 할 시간입니다.

+0

감사합니다. 'transport.trustStoreLocation'으로 변경하면 효과가있었습니다. –

관련 문제