Я пытаюсь создать POC для сервера веб-сокетов на основе Spring с Rabbitmq в качестве брокера сообщений STOMP. Приложение работает нормально на незащищенных соединениях. Однако у меня возникают трудности при настройке ретранслятора STOMP Broker для пересылки по SSL-соединениям. Мой код похож на this . Я добавил необходимые конфигурации, но я не уверен, как настроить значение по умолчанию SSLContext
перед возвратом объекта tcpClientSpec
. Если я не установил sslcontext
, мое приложение ищет конфигурацию, связанную с хранилищем ключей. Я попытался установить конфигурацию, связанную с хранилищем доверенных сертификатов, в ssloption
из TCPClientSpec
, но все еще ищет конфигурацию хранилища ключей.
Мой класс StompTCP:
@Override
public Spec.TcpClientSpec<Message<byte[]>, Message<byte[]>> apply(Spec.TcpClientSpec<Message<byte[]>, Message<byte[]>> tcpClientSpec) {
return tcpClientSpec
.env(environment)
.codec(new Reactor2StompCodec(new StompEncoder(), new StompDecoder()))
.ssl(ssl ? new SslOptions() : null)
.connect(host, port);
}
Я хочу иметь что-то вроде этого:
SSLContext sslContext = SSLContext.getInstance("SSL");
sslContext.init(null, trustMgr, null); /*only trust manager config and not keystore*/
SSLSocketFactory socketFactory = sslContext.getSocketFactory();
socketFactory.createSocket();
Есть ли способ установить это sslcontext
в tcpClientSpec
.