CAPolicy.inf 語法
CAPolicy.inf 是一個組態檔,會定義對根 CA 憑證以及根 CA 簽發的所有憑證套用的延伸、條件約束和其他組態設定。 在開始執行根 CA 的設定常式之前,必須先將 CAPolicy.inf 檔案安裝在主機伺服器上。 修改根 CA 的安全性限制時,必須更新根憑證,並且在更新程序開始之前將更新的 CAPolicy.inf 檔案安裝在伺服器上。
CAPolicy.inf:
由系統管理員手動建立及定義
在建立根和次級 CA 憑證期間使用
定義於您簽署並發行憑證的簽署 CA 上 (而不是授與要求的 CA)
在建立 CAPolicy.inf 檔案後,您必須先將其複製到伺服器的 %systemroot% 資料夾中,再安裝 ADCS 或更新 CA 憑證。
CAPolicy.inf 可讓您指定及設定各種不同的 CA 屬性和選項。 下一節將說明可讓您依據自身特定需求建立自訂 .inf 檔案的所有選項。
CAPolicy.inf 檔案結構
以下是用來描述 .inf 檔案結構的詞彙:
區段 – 是涵蓋索引鍵邏輯群組的檔案區域。 .inf 檔案中的區段名稱可用顯示於括弧中來識別。 許多 (但並非全部) 區段都是用來設定憑證延伸的。
索引鍵 – 是項目的名稱,出現在等號左側。
值 – 是參數,出現在等號右側。
在下列範例中,[Version] 是區段、Signature 是索引鍵,而 "$Windows NT$" 是值。
範例:
[Version]
Signature="$Windows NT$"
版本
將檔案識別為 .inf 檔案。 版本是唯一的必要區段,且必須位於 CAPolicy.inf 檔案開頭處。
PolicyStatementExtension
列出組織已定義的原則,以及這些原則是選用還是必要的。 多個原則會以逗號分隔。 名稱在特定部署的內容中具有意義,或與檢查這些原則是否存在的自訂應用程式有關。
已定義的每個原則都必須有一個區段用來定義該原則的設定。 您必須為每個原則提供使用者定義的物件識別碼 (OID),以及您想要顯示為原則陳述式的文字,或原則陳述式的 URL 指標。 URL 的格式可以是 HTTP、FTP 或 LDAP URL。
如果您要在原則陳述式中使用描述性文字,則 CAPolicy.inf 接下來的三行將如下所示:
[InternalPolicy]
OID=1.1.1.1.1.1.1
Notice="Legal policy statement text"
如果您要使用 URL 來裝載 CA 原則陳述式,則接下來的三行將如下所示:
[InternalPolicy]
OID=1.1.1.1.1.1.2
URL=https://pki.wingtiptoys.com/policies/legalpolicy.asp
此外,您應注意:
支援多個 URL 和注意事項索引鍵。
支援在相同原則區段中同時使用注意事項和 URL 索引鍵。
有空格的 URL 或有空格的文字必須以引號括住。 URL 索引鍵也是如此,無論出現在哪個區段中。
下列範例顯示原則區段中有多個注意事項和 URL 的:
[InternalPolicy]
OID=1.1.1.1.1.1.1
URL=https://pki.wingtiptoys.com/policies/legalpolicy.asp
URL=ftp://ftp.wingtiptoys.com/pki/policies/legalpolicy.asp
Notice="Legal policy statement text"
CRLDistributionPoint
您可以在 CAPolicy.inf 中指定根 CA 憑證的 CRL 發佈點 (CDP)。 安裝 CA 之後,您可以設定 CA 在每個簽發的憑證中包含的 CDP URL。 根 CA 憑證會顯示在 CAPolicy.inf 檔案的此區段中指定的 URL。
[CRLDistributionPoint]
URL=http://pki.wingtiptoys.com/cdp/WingtipToysRootCA.crl
CRL 發佈點 (CDP) 支援:
- HTTP
- 檔案 URL
- LDAP URL
- 多個 URL
重要
CRL 發佈點 (CDP) 不支援 HTTPS URL。
有空格的 URL 必須以引號括住。
若未指定 URL (也就是說,如果 [CRLDistributionPoint] 區段存在於檔案中,但是空的),則會在根 CA 憑證中省略 CRL 發佈點延伸。 設定根 CA 時,最好這麼做。 Windows 不會對根 CA 憑證執行撤銷檢查,因此 CDP 延伸在根 CA 憑證中是多餘的。
CA 可以發佈至 FILE UNC,例如,發佈至用戶端透過 HTTP 進行擷取之網站的共用資料夾。
請在設定根 CA 或更新根 CA 憑證時,才使用此區段。 CA 會決定次級 CA CDP 延伸。
AuthorityInformationAccess
您可以在 CAPolicy.inf 中指定根 CA 憑證的授權單位資訊存取點。
[AuthorityInformationAccess]
URL=http://pki.wingtiptoys.com/Public/myCA.crt
授權單位資訊存取區段的其他注意事項:
支援多個 URL。
支援 HTTP、FTP、LDAP 和 FILE URL。 不支援 HTTPS URL。
請在設定根 CA 或更新根 CA 憑證時,才使用此區段。 次級 CA AIA 延伸是由簽發次級 CA 憑證的 CA 所決定。
有空格的 URL必須以引號括住。
若未指定 URL (也就是說,如果 [AuthorityInformationAccess] 區段存在於檔案中,但是空的),則會在根 CA 憑證中省略授權單位資訊存取延伸。 同樣地,如果沒有授權單位高於必須由憑證的連結參考的根 CA,則應優先使用此設定。
certsrv_Server
CAPolicy.inf 的 [certsrv_server]
區段是選用的。 [certsrv_server]
用來指定更新金鑰長度、更新有效期間,以及要更新或安裝之 CA 的憑證撤銷清單 (CRL) 有效期間。 此區段中的索引鍵都不是必要的。 其中許多設定都有足以因應多數需求的預設值,而可在 CAPolicy.inf 檔案中省略。 或者,其中有許多設定可在 CA 安裝後變更。
範例如下:
[certsrv_server]
RenewalKeyLength=2048
RenewalValidityPeriod=Years
RenewalValidityPeriodUnits=5
CRLPeriod=Days
CRLPeriodUnits=2
CRLDeltaPeriod=Hours
CRLDeltaPeriodUnits=4
ClockSkewMinutes=20
LoadDefaultTemplates=True
AlternateSignatureAlgorithm=0
ForceUTF8=0
EnableKeyCounting=0
RenewalKeyLength 只會設定要更新的金鑰大小。 只有在 CA 憑證更新期間產生新的金鑰組時,才會使用此設定。 安裝 CA 時,會設定初始 CA 憑證的金鑰大小。
使用新的金鑰組更新 CA 憑證時,金鑰長度可以增加或減少。 例如,如果您將根 CA 金鑰大小設定為 4096 位元組或更高後,發現您的某些 Java 應用程式或網路裝置僅支援 2048 位元組的金鑰大小。 無論大小增加還是減少,您都必須重新簽發該 CA 簽發的所有憑證。
RenewValidityPeriod 和 RenewValidityPeriodUnits 會在更新舊的根 CA 憑證時建立新根 CA 憑證的存留期。 這僅適用於根 CA。 次級 CA 的憑證存留期取決於其上層。 RenewalValidityPeriod 可以有下列值:小時、日、週、月、年。
CRLPeriod 和 CRLPeriodUnits 會建立基底 CRL 的有效期間。 CRLPeriod 可以有下列值:小時、日、週、月、年。
CRLDeltaPeriod 和 CRLDeltaPeriodUnits 會建立差異 CRL 的有效期間。 CRLDeltaPeriod 可以有下列值:小時、日、週、月、年。
下列各項設定可在 CA 安裝後設定:
Certutil -setreg CACRLPeriod Weeks
Certutil -setreg CACRLPeriodUnits 1
Certutil -setreg CACRLDeltaPeriod Days
Certutil -setreg CACRLDeltaPeriodUnits 1
請務必重新啟動 Active Directory 憑證服務,讓變更生效。
LoadDefaultTemplates 只會在企業 CA 安裝期間套用。 此設定為 True 或 False (或 1 或 0),會指定 CA 是否使用任何預設範本進行設定。
在 CA 的預設安裝中,預設憑證範本的子集會新增至憑證授權單位嵌入式管理單元中的「憑證範本」資料夾。 這表示,在安裝角色後,AD CS 服務一旦啟動,具有足夠權限的使用者或電腦就可立即註冊憑證。
您不一定要在安裝 CA 後立即簽發任何憑證,因此,您可以使用 LoadDefaultTemplates 設定防止預設範本新增至企業 CA。 如果 CA 上未設定任何範本,則無法簽發憑證。
AlternateSignatureAlgorithm 會將 CA 設定為對 CA 憑證和憑證要求都支援 PKCS#1 V2.1 簽章格式。 當在根 CA 上設定為 1 時,CA 憑證會包含 PKCS#1 V2.1 簽章格式。 設定於次級 CA 時,次級 CA 會建立包含 PKCS#1 V2.1 簽章格式的憑證要求。
ForceUTF8 會將主體和簽發者辨別名稱中的相對辨別名稱 (RDN) 的預設編碼方式變更為 UTF-8。 只有支援 UTF-8 的 RDN (例如由 RFC 定義為目錄字串類型的 RDN) 會受到影響。 例如,網域元件 (DC) 的 RDN 支援編碼為 IA5 或 UTF-8,而國家/地區 RDN (C) 僅支援編碼為可列印字串。 因此,ForceUTF8 指示詞會對 DC RDN 產生影響,但不影響 C RDN。
EnableKeyCounting 會將 CA 設定為在每次使用 CA 簽署金鑰時遞增計數器。 除非您的硬體安全性模組 (HSM) 和相關聯的密碼編譯服務提供者 (CSP) 支援金鑰計數,否則請勿啟用此設定。 Microsoft Strong CSP 或 Microsoft 軟體金鑰儲存提供者 (KSP) 支援不支援金鑰計數。
建立 CAPolicy.inf 檔案
安裝 AD CS 之前,請使用部署的特定設定來設定 CAPolicy.inf 檔案。
必要條件:您必須是系統管理員群組的成員。
在您計劃安裝 AD CS 的電腦上開啟 Windows PowerShell、輸入 notepad.exe,然後按 ENTER 鍵。
輸入下列文字:
[Version] Signature="$Windows NT$" [PolicyStatementExtension] Policies=InternalPolicy [InternalPolicy] OID=1.2.3.4.1455.67.89.5 Notice="Legal Policy Statement" URL=https://pki.corp.contoso.com/pki/cps.txt [Certsrv_Server] RenewalKeyLength=2048 RenewalValidityPeriod=Years RenewalValidityPeriodUnits=5 CRLPeriod=weeks CRLPeriodUnits=1 LoadDefaultTemplates=0 AlternateSignatureAlgorithm=1 [CRLDistributionPoint] [AuthorityInformationAccess]
選取 [檔案],然後選取 [另存新檔]。
瀏覽至 %systemroot% 資料夾。
確定已設定下列選項:
[檔案名稱] 設定為 [CAPolicy.inf]
[存檔類型] 設定為 [所有檔案]
[編碼] 為 [ANSI]
選取 [儲存]。
在系統提示您覆寫檔案時,選取 [是]。
警告
務必以 inf 副檔名儲存 CAPolicy.inf。 如果您未在檔案名稱結尾明確輸入 .inf 並選取上述選項,檔案將儲存為文字檔案,而且將不會用於 CA 安裝。
關閉 [記事本]。
重要
在 CAPolicy.inf 中,您可以看到其中一行指定了 URL https://pki.corp.contoso.com/pki/cps.txt
。 CAPolicy.inf 的內部原則區段只是用來舉例說明如何指定憑證實施準則 (CPS) 的位置。 本指南未指示您建立憑證實施準則 (CPS)。