證書創建工具 (Makecert.exe)
證書創建工具生成僅用於測試目的的 X.509 證書。它創建用於數字簽名的公鑰和私鑰對,並將其存儲在證書檔案中。此工具還將密鑰對與指定發行者的名稱相關聯,並創建一個 X.509 證書,該證書將用戶指定的名稱綁定到密鑰對的公共部分。Makecert.exe 包含基本選項和擴展選項。基本選項是最常用於創建證書的選項。擴展選項提供更多的靈活性。一定不要將此工具生成的證書私鑰存儲在 .snk 檔案中。如果需要存儲私鑰,則應使用密鑰容器。有關如何在密鑰容器中存儲私鑰的更多信息,請參見如何:將非對稱密鑰存儲在密鑰容器中。
[警告說明] 警告:
應使用證書存儲區來安全地存儲證書。此工具使用的 .snk 檔案以不受保護的方式存儲私鑰。創建或導入 .snk 檔案時,在使用期間應注意保證其安全,並在使用後將其移除。
makecert [options] outputCertificateFile
參數說明
outputCertificateFile
測試 X.509 證書要寫入的 .cer 檔案的名稱。
基本選項
指定主題的證書名稱。此名稱必須符合 X.500 標準。最簡單的方法是在雙引號中指定此名稱,並加上前綴 CN=;例如,"CN=Myname"。
將所生成的私鑰標記為可導出。這樣可將私鑰包括在證書中。
指定主題的密鑰容器位置,該位置包含私鑰。如果密鑰容器不存在,系統將創建一個。
指定主題的證書存儲位置。Location 可以是 currentuser(默認值)或 localmachine。
指定主題的證書存儲名稱,輸出證書即存儲在那裡。
指定一個介於 1 和 2,147,483,647 之間的序列號。默認值是由 Makecert.exe 生成的唯一值。
指定證書的簽名許可權,必須設定為 commercial(對於商業軟體發行者使用的證書)或 individual(對於個人軟體發行者使用的證書)。
顯示此工具的命令語法和基本選項列表。
顯示此工具的命令語法和擴展選項列表。
擴展選項
說明
-a algorithm
定簽名算法。必須是 md5(默認值)或 SHA1。
-b mm/dd/yyyy
指定有效期的開始時間。默認為證書的創建日期。
-cy certType
指定證書類型。有效值是 end(對於最終實體)和 authority(對於證書頒發機構)。
-d name
示主題的名稱。
-e mm/dd/yyyy
指定有效期的結束時間。默認為 12/31/2039 11:59:59 GMT。
-eku OID[,oid]
將用逗號分隔的增強型密鑰用法對象標識符 (OID) 列表插入到證書中。
-h number
指定此證書下面的樹的最大高度。
-ic file
指定頒發者的證書檔案。
-ik keyName
指定頒發者的密鑰容器名稱。
-iky KeyType
指定頒發者的密鑰類型,必須是 signature、exchange 或一個表示提供程式類型的整數。默認情況下,可傳入 1 表示交換密鑰,傳入 2 表示簽名密鑰。
-in name
指定頒發者的證書公用名稱。
-ip provider
指定頒發者的 CryptoAPI 提供程式名稱。
-ir location
指定頒發者的證書存儲位置。Location 可以是 currentuser(默認值)或 localmachine。
-is store
指定頒發者的證書存儲名稱。
-iv pvkFile
指定頒發者的 .pvk 私鑰檔案。
-iy pvkFile
指定頒發者的 CryptoAPI 提供程式類型。
-l link
到策略信息的連結(例如,一個 URL)。
-m number
以月為單位指定證書有效期的持續時間。
-nscp
包括 Netscape 客戶端身份驗證擴展。
-r
創建自簽署證書。
-sc file
指定主題的證書檔案。
-sky keytype
指定主題的密鑰類型,必須是 signature、exchange 或一個表示提供程式類型的整數。默認情況下,可傳入 1 表示交換密鑰,傳入 2 表示簽名密鑰。
-sp provider
指定主題的 CryptoAPI 提供程式名稱。
-sv pvkFile
指定主題的 .pvk 私鑰檔案。如果該檔案不存在,系統將創建一個。
-sy type
指定主題的 CryptoAPI 提供程式類型。
示例
下面的命令創建了一個由默認測試根頒發的測試證書並將其寫入 testCert.cer。
複製代碼
makecert testCert.cer
下面的命令創建了一個由默認測試根頒發的證書並將其保存到證書存儲區。
複製代碼
makecert -ss testCertStore
下面的命令創建了一個由默認測試根頒發的證書並將其保存到證書存儲區。它將證書顯式地放入 currentuser 存儲區。
複製代碼
makecert -ss testCertStore -sr currentuser
下面的命令使用主題的密鑰容器和證書主題的 X.500 名稱創建一個測試證書,並將其寫入 textXYZ.cer。
複製代碼
makecert -sk XYZ -n "CN=XYZ Company" testXYZ.cer
下面的命令創建了一個由默認測試根頒發的證書和一個 .pvk 檔案,並將此證書同時輸出到存儲區和該檔案。
複製代碼
makecert -sv testCert.pvk -ss testCertStore testCert.cer
下面的命令創建了一個由默認測試根頒發的證書和一個密鑰容器,並將此證書同時輸出到存儲區和該檔案。
複製代碼
makecert -sk myTestKey -ss testCertStore testCert.cer
下面的命令創建一個自我簽署的證書,指定使用者名稱為“CN=XYZ Company”,指定有效期的起始和結束時間,將密鑰放入 my 存儲區,指定並交換密鑰,並且使私鑰可導出。
複製代碼
makecert -r -pe -n "CN=XYZ Company" -b 01/01/2005 -e 01/01/2010 -sky exchange -ss my
下面的命令創建了一些證書並將它們保存到存儲區。第一個命令使用默認測試根創建了一個證書並將其保存到存儲區。第二個命令使用新創建的證書創建了另一個證書,並將第二個證書保存到另一個存儲區。
複製代碼
makecert -sk myTestKey -ss testCertStore
makecert -is testCertStore -ss anotherTestStore
下面的命令創建了一些證書並將它們保存到存儲區。第一個命令將證書保存到 my 存儲區。第二個命令使用新創建的證書創建了另一個證書。因為 my 存儲區中存在多個證書,所以第二個命令使用公用名稱來標識第一個證書。
複製代碼
makecert -sk myTestKey -n "CN=XXZZYY" -ss my
makecert -is my -in "XXZZYY" -ss anotherTestStore
下面的命令創建了一些證書並將它們保存到檔案和存儲區。第一個命令使用默認測試根創建了一個證書並將其保存到 my 存儲區和一個檔案。第二個命令使用新創建的 testCert.cer 證書創建了另一個證書。因為 my 存儲區中存在多個證書,所以第二個命令使用證書檔案名稱來唯一標識第一個證書。
複製代碼
makecert -sk myTestKey -n "CN=XXZZYY" -ss my testCert.cer
makecert -is my -ic testCert.cer -ss anotherTestStore