跳到主要内容

轮换签名密钥 (OSS)

备注

如果你使用 Logto Cloud,你可以在控制台 UI 中轮换签名密钥,请参考 本教程

Logto OSS 从 v1.8 开始支持轮换签名密钥。

Logto OIDC 签名密钥,也称为 “OIDC 私钥” 和 “OIDC cookie 密钥”,是用于加密 JWT 令牌(访问令牌和 ID 令牌)和浏览器 cookie 的签名密钥,在 Logto 登录会话中使用。

定期轮换你的签名密钥可以降低潜在密钥泄露的风险。Logto 建议你至少每年轮换一次签名密钥。

轮换 OIDC 私有签名密钥

使用下面的 CLI 命令生成一个新的 OIDC 私有签名密钥。新密钥将在重启后自动使用。

可用选项:

--type    (可选) 你的 JWT 令牌的签名密钥算法。
值为 "rsa" 或 "ec"。默认为 "ec"。
logto db config rotate oidc.privateKeys --type rsa

使用下面的 CLI 命令生成一个新的 OIDC cookie 密钥。新密钥将在重启后自动使用。

logto db config rotate oidc.cookieKeys

之前的密钥怎么办?

Logto 密钥轮换命令不会删除你之前的签名密钥,它们将保留在数据库中,除非你手动删除它们。

同时,在删除之前的密钥时要小心,因为这可能导致意外问题。建议在一段时间内(例如 2 周)同时保留新密钥和之前的密钥,直到你确信所有用户都已迁移到新密钥。

故障排除

在 Cloudflare Zero Trust 中使用 Logto 作为 OIDC 提供商

如果你打算在 Cloudflare Zero Trust 中使用 Logto 作为 OIDC 提供商,请注意它不支持使用 ECDSA 算法的 OIDC 提供商。在轮换 OIDC 私有签名密钥时,请确保通过在轮换命令中指定 --type rsa 来使用 RSA 算法:

logto db config rotate oidc.privateKeys --type rsa