Hi guru, Excuse, i'm new in ActiveMQ... Have built certificates/keystores as described in http://www.activemq.org/site/how-do-i-use-ssl.html how-do-i-use-ssl .
The broker have next configuration: ------------------------------------------------- <beans xmlns="http://activemq.org/config/1.0"> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/> <broker useJmx="true" persistent="true" brokerName="VladBroker"> <transportConnectors> <transportConnector name="SSL" uri="ssl://localhost:61613"/> <transportConnector name="TCP" uri="tcp://localhost:61616"/> </transportConnectors> </broker> </beans> ------------------------------------------------- and starts normally: ---------console---------------------------------------- ACTIVEMQ_HOME: c:\ActiveMQ\bin\.. Loading message broker from: xbean:activemq.xml INFO BrokerService - ActiveMQ 4.0.2 JMS Message Broker (VladBroker) is starting INFO BrokerService - For help or more information please see:http://incubator.apache.org/activemq/ INFO ManagementContext - JMX consoles can connect to service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi INFO JDBCPersistenceAdapter - Database driver recognized: [apache_derby_embedded_jdbc_driver] INFO JournalPersistenceAdapter - Journal Recovery Started from: Active Journal: using 5 x 20.0 Megs at: C:\ActiveMQ\activemq-data\journal INFO JournalPersistenceAdapter - Journal Recovered: 0 message(s) in transactions recovered. INFO TransportServerThreadSupport - Listening for connections at: ssl://slavar:61613 INFO TransportConnector - Connector SSL Started INFO TransportServerThreadSupport - Listening for connections at: tcp://slavar:61616 INFO TransportConnector - Connector TCP Started INFO BrokerService - ActiveMQ JMS Message Broker (VladBroker,ID:slavar-1604-1164726172265-1:0) started ------------------------------------------------- The client's program fragment is next: ------------------------------------------------- public class ReceiverClient { public static void main(String[] args) { final String MESSAGE_BROKER_URL = "ssl://slavar:61613"; final String CLIENT_ID = "vladReceive"; final String TOPIC = "testtopic2"; // attempt to put system properties // needed for SSL connection // as described in http://www.activemq.org/site/how-do-i-use-ssl.html System.setProperty("javax.net.ssl.keyStore", "C:\\ActiveMQ\\client.ks"); System.setProperty("javax.net.ssl.keyStorePassword", "password"); System.setProperty("javax.net.ssl.trustStore", "C:\\ActiveMQ\\client.ts"); // enabling debug output System.setProperty("javax.net.debug", "ssl,handshake,data,trustmanager"); // starting communications JMSManager jm = new JMSManager(MESSAGE_BROKER_URL, CLIENT_ID); new Thread(new Receiver(jm, TOPIC)).start(); } } ------------------------------------------------- After starting of client program i got the next console: -------------console------------------------- setting up default SSLSocketFactory use default SunJSSE impl class: com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl class com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl is loaded keyStore is : C:\ActiveMQ\client.ks keyStore type is : jks keyStore provider is : init keystore init keymanager of type SunX509 *** found key for : client chain [0] = [ [ Version: V1 Subject: CN=Client, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown Signature Algorithm: MD5withRSA, OID = 1.2.840.113549.1.1.4 Key: Sun RSA public key, 1024 bits modulus: 119125831157180012241622638937390092189160437001853263361203684931436347286138557738177018166153998344463370986916053114448493751892417595464787155221273101941051608309892520802382018408256577151580997906961252558439314550554537620071874869391764812672132384452834035314691770120458734555207178162494413487159 public exponent: 65537 Validity: [From: Tue Nov 28 17:02:13 EET 2006, To: Mon Feb 26 17:02:13 EET 2007] Issuer: CN=Client, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown SerialNumber: [ 456c4f75] ] Algorithm: [MD5withRSA] Signature: 0000: 3A 90 C6 F1 B8 90 53 77 95 A1 45 CB 18 10 D8 38 :.....Sw..E....8 0010: 3D F1 95 94 E7 A6 4E F7 DC 9C E9 A9 BD 61 BA 4F =.....N......a.O 0020: 76 D8 5B B4 99 43 49 2F 6B A8 F3 69 B3 87 90 F8 v.[..CI/k..i.... 0030: 38 1D 5B 0D E1 B5 44 4B 4A 44 88 60 04 83 04 B2 8.[...DKJD.`.... 0040: B0 BB A8 0A 82 C7 1D 51 7A 6E 62 31 E0 8C 7B 74 .......Qznb1...t 0050: AB 69 B5 48 64 90 AD 30 63 10 FE B0 3C EE C5 2F .i.Hd..0c...<../ 0060: 6A 51 D2 A1 A0 56 B4 CD 59 FF E7 22 78 A8 B7 EA jQ...V..Y.."x... 0070: CF EE EE 14 16 03 F7 7D EF D6 43 4E B4 F4 13 F8 ..........CN.... ] *** trustStore is: C:\ActiveMQ\client.ts trustStore type is : jks trustStore provider is : init truststore adding as trusted cert: Subject: CN=Broker, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown Exception in thread "main" java.lang.ExceptionInInitializerError at corp.sap.pal.le.amqtest.jms.client.JMSManager.init(JMSManager.java:64) at corp.sap.pal.le.amqtest.jms.client.JMSManager.<init>(JMSManager.java:33) at corp.sap.pal.le.amqtest.jms.client.ReceiverClient.main(ReceiverClient.java:37) Caused by: javax.jms.JMSException: Could not connect to broker URL: ssl://slavar:61613. Reason: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:33) at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:253) at org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:212) at org.apache.activemq.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:159) at corp.sap.pal.le.amqtest.jms.client.JMSManager.init(JMSManager.java:55) ... 2 more Caused by: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source) at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source) at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source) at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Unknown Source) at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(Unknown Source) at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Unknown Source) at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(Unknown Source) at com.sun.net.ssl.internal.ssl.AppInputStream.read(Unknown Source) at org.apache.activemq.transport.tcp.TcpBufferedInputStream.fill(TcpBufferedInputStream.java:49) at org.apache.activemq.transport.tcp.TcpBufferedInputStream.read(TcpBufferedInputStream.java:56) at java.io.DataInputStream.readInt(Unknown Source) at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:275) at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:136) at java.lang.Thread.run(Unknown Source) 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(Unknown Source) at sun.security.validator.PKIXValidator.engineValidate(Unknown Source) at sun.security.validator.Validator.validate(Unknown Source) at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source) at com.sun.net.ssl.internal.ssl.JsseX509TrustManager.checkServerTrusted(Unknown Source) ... 14 more Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source) at java.security.cert.CertPathBuilder.build(Unknown Source) ... 19 more 2006.28.11 17:03:14 org.apache.activemq.ActiveMQConnection onAsyncException WARNING: Async exception with no exception listener: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(Unknown Source) at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source) at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source) at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Unknown Source) at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(Unknown Source) at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Unknown Source) at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(Unknown Source) at com.sun.net.ssl.internal.ssl.AppInputStream.read(Unknown Source) at org.apache.activemq.transport.tcp.TcpBufferedInputStream.fill(TcpBufferedInputStream.java:49) at org.apache.activemq.transport.tcp.TcpBufferedInputStream.read(TcpBufferedInputStream.java:56) at java.io.DataInputStream.readInt(Unknown Source) at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:275) at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:136) at java.lang.Thread.run(Unknown Source) 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(Unknown Source) at sun.security.validator.PKIXValidator.engineValidate(Unknown Source) at sun.security.validator.Validator.validate(Unknown Source) at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source) at com.sun.net.ssl.internal.ssl.JsseX509TrustManager.checkServerTrusted(Unknown Source) ... 14 more Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source) at java.security.cert.CertPathBuilder.build(Unknown Source) ... 19 more Issuer: CN=Broker, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown Algorithm: RSA; Serial number: 0x456c4f41 Valid from Tue Nov 28 17:01:21 EET 2006 until Mon Feb 26 17:01:21 EET 2007 init context trigger seeding of SecureRandom done seeding SecureRandom instantiated an instance of class com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl main, setSoTimeout(0) called %% No cached client session *** ClientHello, TLSv1 RandomCookie: GMT: 1164725938 bytes = { 104, 30, 199, 2, 187, 204, 113, 255, 60, 143, 243, 121, 36, 222, 8, 25, 236, 63, 217, 191, 87, 45, 125, 196, 9, 218, 218, 6 } Session ID: {} Cipher Suites: [SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, SSL_RSA_WITH_DES_CBC_SHA, SSL_DHE_RSA_WITH_DES_CBC_SHA, SSL_DHE_DSS_WITH_DES_CBC_SHA, SSL_RSA_EXPORT_WITH_RC4_40_MD5, SSL_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA] Compression Methods: { 0 } *** [write] MD5 and SHA1 hashes: len = 73 0000: 01 00 00 45 03 01 45 6C 4F B2 68 1E C7 02 BB CC ...E..ElO.h..... 0010: 71 FF 3C 8F F3 79 24 DE 08 19 EC 3F D9 BF 57 2D q.<..y$....?..W- 0020: 7D C4 09 DA DA 06 00 00 1E 00 04 00 05 00 2F 00 ............../. 0030: 33 00 32 00 0A 00 16 00 13 00 09 00 15 00 12 00 3.2............. 0040: 03 00 08 00 14 00 11 01 00 ......... ActiveMQ Transport: tcp://localhost/127.0.0.1:61613, WRITE: TLSv1 Handshake, length = 73 [write] MD5 and SHA1 hashes: len = 98 0000: 01 03 01 00 39 00 00 00 20 00 00 04 01 00 80 00 ....9... ....... 0010: 00 05 00 00 2F 00 00 33 00 00 32 00 00 0A 07 00 ..../..3..2..... 0020: C0 00 00 16 00 00 13 00 00 09 06 00 40 00 00 15 [EMAIL PROTECTED] 0030: 00 00 12 00 00 03 02 00 80 00 00 08 00 00 14 00 ................ 0040: 00 11 45 6C 4F B2 68 1E C7 02 BB CC 71 FF 3C 8F ..ElO.h.....q.<. 0050: F3 79 24 DE 08 19 EC 3F D9 BF 57 2D 7D C4 09 DA .y$....?..W-.... 0060: DA 06 .. ActiveMQ Transport: tcp://localhost/127.0.0.1:61613, WRITE: SSLv2 client hello message, length = 98 ActiveMQ Transport: tcp://localhost/127.0.0.1:61613, READ: TLSv1 Handshake, length = 676 *** ServerHello, TLSv1 RandomCookie: GMT: 1164725938 bytes = { 248, 74, 66, 253, 93, 220, 60, 202, 202, 112, 29, 64, 177, 73, 33, 56, 64, 236, 105, 28, 166, 42, 153, 58, 158, 136, 142, 3 } Session ID: {69, 108, 79, 178, 39, 232, 39, 146, 139, 217, 183, 46, 34, 162, 86, 158, 115, 6, 202, 100, 101, 39, 38, 68, 143, 237, 247, 245, 189, 242, 138, 240} Cipher Suite: SSL_RSA_WITH_RC4_128_MD5 Compression Method: 0 *** %% Created: [Session-1, SSL_RSA_WITH_RC4_128_MD5] ** SSL_RSA_WITH_RC4_128_MD5 [read] MD5 and SHA1 hashes: len = 74 0000: 02 00 00 46 03 01 45 6C 4F B2 F8 4A 42 FD 5D DC ...F..ElO..JB.]. 0010: 3C CA CA 70 1D 40 B1 49 21 38 40 EC 69 1C A6 2A <[EMAIL PROTECTED]@.i..* 0020: 99 3A 9E 88 8E 03 20 45 6C 4F B2 27 E8 27 92 8B .:.... ElO.'.'.. 0030: D9 B7 2E 22 A2 56 9E 73 06 CA 64 65 27 26 44 8F ...".V.s..de'&D. 0040: ED F7 F5 BD F2 8A F0 00 04 00 .......... *** Certificate chain chain [0] = [ [ Version: V1 Subject: CN=Client, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown Signature Algorithm: MD5withRSA, OID = 1.2.840.113549.1.1.4 Key: Sun RSA public key, 1024 bits modulus: 119125831157180012241622638937390092189160437001853263361203684931436347286138557738177018166153998344463370986916053114448493751892417595464787155221273101941051608309892520802382018408256577151580997906961252558439314550554537620071874869391764812672132384452834035314691770120458734555207178162494413487159 public exponent: 65537 Validity: [From: Tue Nov 28 17:02:13 EET 2006, To: Mon Feb 26 17:02:13 EET 2007] Issuer: CN=Client, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown SerialNumber: [ 456c4f75] ] Algorithm: [MD5withRSA] Signature: 0000: 3A 90 C6 F1 B8 90 53 77 95 A1 45 CB 18 10 D8 38 :.....Sw..E....8 0010: 3D F1 95 94 E7 A6 4E F7 DC 9C E9 A9 BD 61 BA 4F =.....N......a.O 0020: 76 D8 5B B4 99 43 49 2F 6B A8 F3 69 B3 87 90 F8 v.[..CI/k..i.... 0030: 38 1D 5B 0D E1 B5 44 4B 4A 44 88 60 04 83 04 B2 8.[...DKJD.`.... 0040: B0 BB A8 0A 82 C7 1D 51 7A 6E 62 31 E0 8C 7B 74 .......Qznb1...t 0050: AB 69 B5 48 64 90 AD 30 63 10 FE B0 3C EE C5 2F .i.Hd..0c...<../ 0060: 6A 51 D2 A1 A0 56 B4 CD 59 FF E7 22 78 A8 B7 EA jQ...V..Y.."x... 0070: CF EE EE 14 16 03 F7 7D EF D6 43 4E B4 F4 13 F8 ..........CN.... ] *** ActiveMQ Transport: tcp://localhost/127.0.0.1:61613, SEND TLSv1 ALERT: fatal, description = certificate_unknown ActiveMQ Transport: tcp://localhost/127.0.0.1:61613, WRITE: TLSv1 Alert, length = 2 ActiveMQ Transport: tcp://localhost/127.0.0.1:61613, called closeSocket() ActiveMQ Transport: tcp://localhost/127.0.0.1:61613, handling exception: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target ActiveMQ Transport: tcp://localhost/127.0.0.1:61613, called close() ActiveMQ Transport: tcp://localhost/127.0.0.1:61613, called closeInternal(true) main, handling exception: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target ------------------------------------------------ Seems that program can see keyStore and trustStore... What i do improperly? PS And what to do to establish SSL connection between two brokers? Thanks in adwance. And excuse my poor english. Vlad -- View this message in context: http://www.nabble.com/Cannot-get-SSL-client-to-broker-connection-tf2719214.html#a7581989 Sent from the ActiveMQ - User mailing list archive at Nabble.com.