SpringBoot-使用Spring Cloud Config重新加载SSL证书

问题描述 投票:0回答:1

我正在学习在Spring Boot中使用SSL证书。特别使用“让我们加密”。

它们具有在3个月后过期的限制,所以据我所知,它们应该进行更新,在更新证书时,我们需要重新启动Spring Boot应用程序以使其加载新的证书。

不久前,我与Eureka和Zuul Gateway一起开发微服务。而且我还记得我还设置了一个git repo用作Spring Cloud Config。我不太记得,我认为我们可以使用Spring Cloud Config而不使用微服务架构。

所以我的问题是:我们可以使用这种Spring Cloud Config机制来重新加载属性以重新加载SSL证书吗?这个想法是触发属性重载机制,并且ssl是通过这些属性配置的,我认为也许可以重载它。

我正在计划使获取和更新Let's Encrypt证书的过程自动化,并避免我的应用程序停机。

最诚挚的问候!

spring spring-boot ssl lets-encrypt spring-cloud-config
1个回答
0
投票

SSL证书适用于JVM级别-Spring Boot和Spring Cloud Config都无法对此进行控制,因此要应用新证书,将需要重新启动应用程序运行的JVM实例,因为您已经更新了密钥库。在不关闭JVM的情况下能够动态添加证书将是一个主要的安全缺陷。

在AWS生态系统中,想法是,如果您关闭虚拟机,则会丢失该虚拟机,并且其中的内容将永远消失。借助Spring Cloud(Config,Zuul,Eureka),您可以启动通过Config向Eureka注册的VM,Zuul使用Eureka中的信息进行负载平衡。因此,应采用的方式是使用更新的证书通过Spring Boot实例启动另一个VM,并杀死较旧的VM,Zuul负责作为“反向Web代理”的繁琐工作,路由请求到新的Web服务器。

您沿着这条路线打开的蠕虫罐是,现在您必须实现4个服务器和一个VPN来支持它们,您的Zuul服务器成为外部Web请求的目标,并且您可能需要研究“断路器”如何处理HTTP请求失败的模式-接下来要研究的是Hystrix。

对于Digital Ocean,我不确定您可能需要做些什么,但是不可避免地需要重新启动JVM。

© www.soinside.com 2019 - 2024. All rights reserved.