«невозможно найти действительный путь сертификации к запрошенной цели» после добавления нового хранилища ключей в ActiveMQ - PullRequest
0 голосов
/ 19 июля 2011

Мы используем ActiveMQ для постановки в очередь сообщений от удаленных клиентов.

Клиенты используют следующий URL для подключения к ActiveMQ на нашем сервере;

ssl://www.mydomain.com:61616

В прошлом это работало нормально ибыл создан разработчиком, который знает больше с компанией.

Недавно нам пришлось обновить наш SSL-сертификат, так как старый закончилась.Мы успешно сделали это для нашего http-сервера, но только сейчас поняли, что копия исходного хранилища ключей все еще находится в папках конфигурации ActiveMQ.

Мы попытались поместить новое хранилище ключей в папки конфигурации ActiveMQ, перезаписавстарое хранилище ключей.Однако это не работает, и все соединения отклоняются с помощью следующей трассировки стека:

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)

Что мы здесь делаем неправильно?Мы перечислили содержимое как старого, так и нового хранилища ключей с помощью команды keytool -list, и они выглядят очень похожими (кроме дат, конечно).Есть ли какие-то дополнительные обновления, которые мы должны сделать для клиентов, вызывающих указанный выше URL, чтобы принять наше новое хранилище ключей?

1 Ответ

0 голосов
/ 05 августа 2011

Возможно, ваше хранилище доверенных сертификатов не синхронизировано с вашим хранилищем ключей.Вот общий способ настроить его с нуля;Ваша конфигурация будет отличаться, поэтому адаптируйтесь по мере необходимости:

Создайте сертификаты для каждого из клиентов и зарегистрируйте сертификаты клиента в доверенном хранилище брокера.

> keytool -genkey -alias producer -keyalg RSA -keystore myproducer.ks
> keytool -genkey -alias consumer -keyalg RSA -keystore myconsumer.ks

Экспорт обоих сертификатов

> keytool -export -alias producer -keystore myproducer.ks -file producer_cert
> keytool -export -alias consumer -keystore myconsumer.ks -file consumer_cert

Импорт сертификатов в хранилище доверенных сертификатов производителя (новый файл)

> keytool -import -alias producer -keystore mybroker.ts -file producer_cert
> keytool -import -alias consumer -keystore mybroker.ts -file consumer_cert

Скопируйте хранилище доверенных сертификатов брокера в любое место, где у вас был старый, обычно {ACTIVEMQ_HOME} / conf.Как правило, вы можете увидеть это в конфигурации вашего брокера:

<broker ...>
  <sslContext>
    <sslContext keyStore="file:${activemq.base}/conf/mybroker.ks"
        keyStorePassword="test123"
        trustStore="file:${activemq.base}/conf/mybroker.ts"
        trustStorePassword="test123"/>
  </sslContext>
</broker>
...