我正在学习如何在Spring中使用SSL证书。特别是让我们加密那些。
它们有3个月后过期的限制,因此应该更新它们,据我所知,在更新证书时,我们需要重新启动Spring应用程序,以使它能够加载新的应用程序。
不久前,我和尤里卡和祖尔·盖夫一起玩,开发微型服务.我还记得,我还设置了一个git作为。我记不清了,我想我们可以不用微服务来使用Spring。
所以我的问题是:我们可以使用Spring 机制来重新加载属性来重新加载SSLCertificate吗?其想法是触发属性重新加载机制,并且由于ssl是通过这些属性配置的,我认为也许可以重新加载它。
我计划自动获得和更新的过程,让我们加密证书,并避免停机我的应用程序。
诚挚的问候!
发布于 2019-09-28 03:03:33
SSL证书是在JVM级别上应用的-- Spring和对此都没有任何控制,因此要应用新的证书,需要重新启动应用程序中运行的JVM实例,因为您已经更新了密钥存储库。能够在不关闭JVM的情况下动态添加证书将是一个主要的安全缺陷。
在AWS生态系统中,这样的想法是,如果关闭VM,就会丢失VM,其上的内容就会永远消失。使用Spring (Config、Zuul、Eureka),您可以通过Config向Eureka注册VM,Zuul使用Eureka中的信息来进行负载平衡。因此,您应该使用更新的证书使用Spring实例拆分另一个VM,并关闭由于AWS而消失的旧VM,Zuul负责处理作为“反向web代理”的肮脏工作,根据需要将请求路由到新的web服务器。
沿着这条路线打开的蠕虫的罐是,现在您必须实现4台服务器和一个VPN来支持它们,您的Zuul服务器成为外部web请求的目标,您可能需要研究如何处理HTTP请求失败的“断路器”模式-- Hystrix是下一个要研究的问题。
对于Digital,我不知道您可能要做什么不同的事情,但是JVM重启是不可避免的。
发布于 2021-11-10 07:30:55
实际上这要看情况。证书在SSLContext级别上应用,SSLContext可以在运行时刷新。完全可以在KeyStore中更新证书并刷新SSLContext,而且Tomcat有一个特殊的助手函数reloadSslHostConfigs来帮助您这样做。
,所以你所要求的是完全可行的:
reloadSslHostConfigs,以便Tomcat更新其SSLContext。有关证书重新加载的实现细节,您可以查看让我们加密帮手库。它允许生成和保持新鲜的LetsEncrypt证书,而无需JVM重新启动。
https://stackoverflow.com/questions/58142357
复制相似问题