跳至主要內容

輪替簽章金鑰(OSS)

備註:

如果你使用的是 Logto Cloud,可以在 Console UI 中輪替簽章金鑰,請參考本教學

Logto OSS 自 v1.8 起支援輪替簽章金鑰。

Logto OIDC 簽章金鑰(也稱為「OIDC 私鑰」和「OIDC Cookie 金鑰」),是用於加密 JWT(存取權杖 (Access tokens) 和 ID 權杖 (ID tokens))以及 Logto 登入階段中的瀏覽器 Cookie 的簽章金鑰。

定期輪替你的簽章金鑰可以降低金鑰洩漏的潛在風險。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 Provider

如果你打算在 Cloudflare Zero Trust 中將 Logto 作為 OIDC Provider,請注意 Cloudflare Zero Trust 不支援使用 ECDSA 演算法的 OIDC Provider。輪替 OIDC 私有簽章金鑰時,請務必在輪替指令中指定 --type rsa,以使用 RSA 演算法:

logto db config rotate oidc.privateKeys --type rsa