避免及解決政策衝突

憑證授權單位服務中的政策可以是 CA 集區的核發政策,也可以是憑證範本。憑證核發政策會為 CA 集區設定廣泛的規則,而憑證範本則會為不同憑證類型提供更具體的指示。如要瞭解政策控管,請參閱「關於政策控管」。政策主要分為兩部分:

  • 基準值:基準值 (也稱為預先定義值) 是特定政策核發的所有憑證的必要設定。舉例來說,您可能有一項政策規定:「根據這項政策核發的所有憑證,都必須在 keyUsage 擴充功能中啟用 digitalSignature 旗標。」確保這項政策核發的所有憑證都能用於數位簽章。

  • 擴充功能限制:擴充功能限制會限制可新增至政策本身以外憑證的擴充功能。舉例來說,政策可能會規定「只有 AIA-OCSP 擴充功能可新增至這項政策以外的憑證」。也就是說,如果有人嘗試透過其他政策或直接在憑證要求中新增其他擴充功能 (例如主體別名),系統會忽略這些擴充功能。

要求憑證時,CA 集區會使用指定的範本建立憑證。不過,附加至 CA 集區的核發政策也會根據自身規則評估要求。當憑證範本中的設定與新增至 CA 集區的憑證核發政策中的設定相衝突時,就會發生衝突,因為兩者都嘗試對同一憑證強制執行規則。以下列舉幾種可能情況:

擴充功能定義重疊

如果兩項政策的基準值都定義了相同的擴充功能,就會發生衝突。舉例來說,如果您在 CA 集區的核發政策和憑證範本中定義相同的擴充功能 keyUsage,即使您在每個位置指定擴充功能的不同部分,憑證授權單位服務仍會偵測到衝突。

範例:

  • 核發政策:需要在 keyUsage 擴充功能中加入 digitalSignature: true
  • 憑證範本:需要在 keyUsage 擴充功能中提供 keyEncipherment: true

由於憑證授權單位服務會將整個擴充功能視為單一單元,並檢查擴充功能是否定義在這兩個位置,而非擴充功能內的特定值,因此這仍視為衝突。

為避免發生衝突,請確保您只在 CA 集區的核發政策或憑證範本中定義每個擴充功能,但不要同時在兩者中定義。這樣可確保清楚明瞭,並防止發生非預期的憑證核發失敗情況。

擴充功能限制和基準值發生衝突

當一項政策的擴充限制與另一項政策的基準值衝突時,就會發生政策衝突。這會在下列情況發生:

  • 一項政策限制或禁止擴充功能:這可能是透過一般排除所有擴充功能,或是透過允許的擴充功能清單,但不包含有問題的擴充功能。
  • 另一個政策需要相同的擴充功能:這表示第二個政策已為該特定擴充功能定義基準值。

範例:

  • 核發政策:具有擴充功能限制,只允許 keyUsage 擴充功能。
  • 憑證範本:基準值中必須包含 certificatePolicies 擴充功能。

這會造成衝突,因為核發政策實際上禁止 certificatePolicies 擴充功能,但憑證範本要求使用該擴充功能。

定義政策時,請仔細考量基準值和擴充限制,確保兩者能相互搭配運作。避免發生某項政策限制擴充功能,但另一項政策卻要求使用該擴充功能的情況。這樣可避免發生衝突,確保憑證順利核發。

一般運算語言 (CEL) 運算式衝突

如果您使用一般運算語言 (CEL) 進行精細控管,憑證範本和核發政策中相互衝突的運算式可能會導致衝突。這些衝突會導致 CA 集區無法核發憑證。舉例來說,您可能有一個運算式要求網域名稱結尾為 .example.com,另一個則要求結尾為 .example.net。由於這兩個 CEL 運算式對同一欄位設下不同限制,因此所有憑證核發要求都會失敗。

如果您同時使用憑證核發政策和憑證範本,建議確保兩者的 CEL 運算式不會衝突。

在上述所有情況下,CA 服務 API 都會傳回無效引數錯誤。

解決政策衝突

如果 CA 服務 API 偵測到政策衝突,API 會傳回無效引數錯誤,且憑證要求會失敗。如要查看及解決政策衝突,請按照下列步驟操作:

  1. 按一下錯誤訊息中顯示的「發行政策疑難排解工具」連結。系統會顯示疑難排解工具頁面,您可以在這裡比較 CA 集區核發政策中的基準值和擴充功能限制,以及憑證範本中的基準值和擴充功能限制。請注意,系統會醒目顯示政策衝突。
  2. 存取 CA 集區或憑證範本,更新衝突值並解決衝突。

解決衝突後,請再次提交憑證要求。

後續步驟