- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用 org.reSTLet.engine.ssl.DefaultSslContextFactory 的现有应用程序和一个在服务器启动时加载的 keystore 文件。我有另一个应用程序创建必须添加的证书在服务器运行时动态地添加到 keystore 文件。为了执行此操作,我在代码中创建了证书和私钥然后写入到一个目录。该目录由 bash 脚本监视,检查新文件,如果出现新文件,它将被导入到现有的 keystore 文件中。
但是当尝试使用新导入的证书访问服务器时,握手失败。只有重新启动服务器才能成功完成访问,我认为这意味着添加的证书不会被服务器重新加载。
有没有办法使用 keystore 文件中的新条目更新正在运行的应用程序?
最佳答案
将新证书导入 keystore 不会刷新当前的 SSLConext,因为没有任何信息告诉 JVM keystore 已更改。
要做到这一点,您必须告诉您的应用程序新证书已添加到您的 keystore 中,但不是重新加载 keystore (据我所知这是不可能的),顺便说一下,可能的是您可以将新证书添加到当前的 SSLContext See here .
为了实现这一点,您必须提供一个能够识别新证书的 bean(可能是调用您的 bash 脚本的组件),您在其中注入(inject)了 SSLContext 实例。
如果您使用微服务架构拆分应用程序,将处理证书的事实委托(delegate)给一个模块并在更新 keystore 时重新加载它(使用正确的配置 LB),这也会很有趣。
关于Java DefaultSslContextFactory keystore 动态更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41944947/
我有一个使用 org.reSTLet.engine.ssl.DefaultSslContextFactory 的现有应用程序和一个在服务器启动时加载的 keystore 文件。我有另一个应用程序创建必
我是一名优秀的程序员,十分优秀!