轮换签名密钥 (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"。
- CLI
- local
- npx
logto db config rotate oidc.privateKeys --type rsa
npm run cli db config rotate oidc.privateKeys -- --type rsa
npx @logto/cli db config rotate oidc.privateKeys -- --type rsa
轮换 OIDC cookie 密钥
使用下面的 CLI 命令生成一个新的 OIDC cookie 密钥。新密钥将在重启后自动使用。
- CLI
- local
- npx
logto db config rotate oidc.cookieKeys
npm run cli db config rotate oidc.cookieKeys
npx @logto/cli db config rotate oidc.cookieKeys
之前的密钥怎么办?
Logto 密钥轮换命令不会删除你之前的签名密钥,它们将保留在数据库中,除非你手动删除它们。
同时,在删除之前的密钥时要小心,因为这可能导致意外问题。建议在一段时间内(例如 2 周)同时保留新密钥和之前的密钥,直到你确信所有用户都已迁移到新密钥。
故障排除
在 Cloudflare Zero Trust 中使用 Logto 作为 OIDC 提供商
如果你打算在 Cloudflare Zero Trust 中使用 Logto 作为 OIDC 提供商,请注意它不支持使用 ECDSA 算法的 OIDC 提供商。在轮换 OIDC 私有签名密钥时,请确保通过在轮换命令中指定 --type rsa
来使用 RSA 算法:
- CLI
- local
- npx
logto db config rotate oidc.privateKeys --type rsa
npm run cli db config rotate oidc.privateKeys -- --type rsa
npx @logto/cli db config rotate oidc.privateKeys -- --type rsa