我已经发布这个问题但不在正确的论坛中。
我已将 tomcat7 配置为使用 SSL,并使其指向密钥库。密钥库默认具有自签名证书。在 tomcat 中部署的几个 Web 应用程序都可以通过 HTTPS 访问,只要您禁用证书验证检查(由于使用自签名证书,这些检查肯定会失败)。部署的 Web 应用程序之一公开 REST API 来管理密钥库中的证书,其中包括安装新的身份证书或信任链。我注意到,在安装新的身份证书后,即使禁用了证书验证检查,所有 Web 应用程序都无法通过 HTTPS 访问。尝试通过 HTTPS 连接会返回 SSL 连接错误。HTTP 工作正常。如果我重新启动 tomcat,错误就会消失,所有 Web 应用程序看起来都可以通过 HTTPS 正常运行。知道为什么需要重新启动吗?我做错了什么导致需要重新启动 tomcat 吗?有没有办法避免重新启动?
答案1
需要重新启动,因为Tomcat
启动时会缓存密钥库,直到下次重新启动才会重新检查。这意味着即使您更改了密钥库,也Tomcat
只有在重新启动后才会读取它。
据我所知,更新密钥库时不可避免地需要重新启动,出于安全风险考虑,您通常不希望“在线”更改此内容。我不确定为什么更改文件后应用程序会停止工作,也许它会在某种程度上变得不一致并造成混乱。
也许这是有趣的:https://stackoverflow.com/questions/5816239/how-do-i-force-tomcat-to-reload-trusted-certificates