在运行时定期更改 SSL 证书
Periodically change SSL certificate at runtime
我正在为我们的微服务构建内部 PKI。它现在的工作方式是
有一个脱机根 CA 和一个在线颁发 CA
关于启动微服务
- 生成密钥对、csr 和密钥库
- 将 CA 证书加载到它的信任库中
- 向颁发 CA 发送请求以签署证书
- 获取新证书并存储它
我们的设想是为每个微服务创建一个短期(比如 24 小时或更短的有效期)证书,当它即将到期或到期时,微服务应该生成一个新的 CSR 并对其进行签名并继续像往常一样工作。这是否可能?如果朝这个方向发展,将面临哪些挑战?
撇开为什么您需要如此短的内部网络刷新时间不谈,您的架构是可行的
考虑:
发证 CA 必须在线,并且应该在微服务启动期间处理 CSR 和 return 有效证书,并且响应时间相当短
脱机根 CA 的 public 证书应该预先包含在每个微服务的信任库中。我建议以编程方式包含它以避免安全风险
检查您的 SSL 服务器是否可热插拔,证书是否可以在启动期间更新,或者必须在微服务启动之前完成(并非所有服务器都支持)
请注意,您将无法使用 SSL-pinning
已实施 SSL 固定,将服务器证书添加到信任库而不是颁发 CA,以避免接受同一 CA 的其他证书
证书通常在客户端信任库中手动离线安装,但在您的情况下,您必须将每个证书分发给将要使用微服务的客户端。该解决方案不切实际,因为您有 to.securize 渠道,将它们分发给每个客户端,安装它们并确保所有步骤同步。
也不要忘记必须从信任库中删除旧证书,因为如果它们存在,它们仍会被客户接受
我正在为我们的微服务构建内部 PKI。它现在的工作方式是
有一个脱机根 CA 和一个在线颁发 CA
关于启动微服务
- 生成密钥对、csr 和密钥库
- 将 CA 证书加载到它的信任库中
- 向颁发 CA 发送请求以签署证书
- 获取新证书并存储它
我们的设想是为每个微服务创建一个短期(比如 24 小时或更短的有效期)证书,当它即将到期或到期时,微服务应该生成一个新的 CSR 并对其进行签名并继续像往常一样工作。这是否可能?如果朝这个方向发展,将面临哪些挑战?
撇开为什么您需要如此短的内部网络刷新时间不谈,您的架构是可行的
考虑:
发证 CA 必须在线,并且应该在微服务启动期间处理 CSR 和 return 有效证书,并且响应时间相当短
脱机根 CA 的 public 证书应该预先包含在每个微服务的信任库中。我建议以编程方式包含它以避免安全风险
检查您的 SSL 服务器是否可热插拔,证书是否可以在启动期间更新,或者必须在微服务启动之前完成(并非所有服务器都支持)
请注意,您将无法使用 SSL-pinning
已实施 SSL 固定,将服务器证书添加到信任库而不是颁发 CA,以避免接受同一 CA 的其他证书
证书通常在客户端信任库中手动离线安装,但在您的情况下,您必须将每个证书分发给将要使用微服务的客户端。该解决方案不切实际,因为您有 to.securize 渠道,将它们分发给每个客户端,安装它们并确保所有步骤同步。
也不要忘记必须从信任库中删除旧证书,因为如果它们存在,它们仍会被客户接受