gpt4 book ai didi

java - 在运行时定期更改 SSL 证书

转载 作者:行者123 更新时间:2023-11-30 10:25:39 25 4
gpt4 key购买 nike

我正在为我们的微服务构建一个内部 PKI。它现在的工作方式是

有一个离线根 CA 和在线颁发 CA

启动微服务

  • 生成 key 对、csr 和 keystore
  • 将 CA 证书加载到它的信任库中
  • 向颁发 CA 发送请求以签署证书
  • 获取新证书并存储

我们的设想是为每个微服务创建一个短期(比如 24 小时或更短的有效期)证书,当它即将到期或到期时,微服务应该生成一个新的 CSR 并对其进行签名并继续工作通常。这是否可能?如果朝这个方向发展,将面临哪些挑战?

最佳答案

撇开为什么您需要如此短的内部网络刷新时间不谈,您的架构是可行的

考虑:

  • 发证 CA 必须在线,并且应该在微服务启动期间处理 CSR 并返回有效证书,并且响应时间相当短

  • 脱机根 CA 的公共(public)证书应该预先包含在每个微服务的信任库中。我建议以编程方式包含它以避免安全风险

  • 检查您的 SSL 服务器是否支持热插拔,证书是否可以在启动期间更新,或者必须在微服务启动之前完成(并非所有服务器都支持)

  • 请注意,您将无法使用 SSL 固定


SSL pinning 的实现是将服务器证书添加到信任库而不是颁发 CA,以避免接受同一 CA 的其他证书

证书通常在客户端信任库中手动离线安装,但在您的情况下,您必须将每个证书分发给将要使用微服务的客户端。该解决方案不切实际,因为您必须保护 channel ,将它们分发给每个客户端,安装它们并确保所有步骤同步。

不要忘记旧证书必须从信任库中删除,因为如果它们存在,它们仍然会被客户接受

关于java - 在运行时定期更改 SSL 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46073255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com