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.

Reply via email to