Java アプリケーションから SonicMQ ブローカーに接続できません。
これは私のクライアントコードです:
System.out.println("Connection setup started");
System.setProperty("javax.net.ssl.keyStoreType", "PKCS12");
System.setProperty("javax.net.ssl.keyStore", keyStoreFile.getAbsolutePath());
System.setProperty("javax.net.ssl.keyStorePassword","changeit");
ConnectionFactory connectionFactory = new progress.message.jclient.ConnectionFactory(args[0]);
Connection connection = connectionFactory.createConnection(args[1], args[2]);
最後の行で、「信頼できる CA 証明書が指定されていません」と表示されます。通知と
javax.jms.JMSException: Unable to register trusted CA certificate(s) or trust decider to verify the broker certificate
at progress.message.jimpl.JMSExceptionUtil.createJMSException(JMSExceptionUtil.java:42)
at progress.message.jimpl.Connection.<init>(Connection.java:755)
at progress.message.jclient.ConnectionFactory.createConnection(ConnectionFactory.java:2055)
at hr.aduro.translatorclient.TranslatorClient.main(TranslatorClient.java:80)
Caused by: [4020] progress.message.net.ESocketConfigException: Unable to register trusted CA certificate(s) or trust decider to verify the broker certificate
at progress.message.net.ssl.ProgressSslSocket.<init>(ProgressSslSocket.java:89)
at progress.message.net.ssl.ProgressSslSocket.<init>(ProgressSslSocket.java:163)
at progress.message.net.ssl.ProgressSslSocketFactory.createProgressSocket(ProgressSslSocketFactory.java:240)
at progress.message.net.ProgressSocketFactory.createProgressSocket(ProgressSocketFactory.java:179)
at progress.message.zclient.Connection.openSocket(Connection.java:3640)
at progress.message.zclient.Connection.connectWithRecoveryOpt(Connection.java:752)
at progress.message.zclient.ReconnectHelper.connectAndChaseSingleFailoverRedirect(ReconnectHelper.java:534)
at progress.message.zclient.Connection.connect(Connection.java:1503)
at progress.message.jimpl.Connection.<init>(Connection.java:536)
... 2 more
注: keyStoreFile
はフォルダ内の p12 ファイルでresources
あり、公開証明書と秘密鍵のペアが含まれています
これは私を困惑させ、私はこの問題で丸一日を失いましたが、まだ解決策はありません. 私のホストが URL を渡すことによって SSL を使用することを述べるとすぐにssl://some-ip-address:port
、接続ファクトリが CA を検索しようとすることを認識しています。問題は、使用している CA を指定する場所がわからないことです。