Контекст заключается в том, что я работаю над проектом Kubernetes, где мы используем кластер Geode и Spring Boot, а также Geode Spring Boot Data (SBDG). Мы разработали приложение с ним, ClientCache. Кроме того, у нас есть собственный внутренний механизм для генерации кластерных внутренних сертификатов, этот механизм автоматически обновляет сертификаты в соответствии с лучшими практиками. Мы преобразуем сертификат в формате PEM в нашем коде приложения в JKS и настроили Spring с аннотацией @enablessl, чтобы взять их. Иногда sslexception (readhandshakerecord), много раз с «неспособным подключиться к каким-либо локаторам в списке» (но я отладил, и это также является рукопожатием, просто оберткой в подключении и особой). Локаторы и серверы запущены (я проверил с GFSH), просто приложение, которое, как мне кажется, пытается связаться со старым SSLContext и проваливается в рукопожатии SSL. Влияние многих проектов весны /Java, как я нашел эту проблему повсюду (кафка, PGSQL и т. Д.). < /p>
У кого -нибудь из вас есть какой -нибудь метод, чтобы сделать это? Каким-то образом соединения и заставили
clientCache создавать новые, перечитывая файл JKS? Покажите, как мы делаем что -то, так как мы используем весну, она мертва просто: < /p>
@Configuration
@EnableGemfireRepositories(basePackages = "...")
@EnableEntityDefinedRegions(basePackages = "...")
@ClientCacheApplication
@EnableSsl(
truststore = "truststore.jks",
keystore = "keystore.jks",
truststorePassword = "pwd",
keystorePassword = "pwd"
)
public class GeodeTls {}
< /code>
И это все! Затем мы используем нормальные аннотации для @regions и @repositories, и у нас есть наши @RestControllers, где мы называем методы репозитория, большинство из них просто пустые или по умолчанию, поскольку мы используем метод аннотата OQL, чтобы делать вещи с пружиной. Поскольку Geode имеет конфигурацию, основанную на свойствах, мы никогда не устанавливаем KeyStores, TrustStores, я просто вижу их внутри кода во время отладки. Кроме того, приведенный ниже фрагмент был чрезвычайно полезен в отношении сменного KeyManager (спасибо за Hakan54), в конце концов я сделал комбинированное решение. Я должен был быть осторожным, чтобы установить SSLContext по умолчанию только один раз, так как последующие наборы были неэффективными и не приводили к каким -либо неудачам. Теперь приложение стабильное, оно кажется изменением сертификата.
Подробнее здесь: https://stackoverflow.com/questions/658 ... thout-rest