Makecert.exe(證書創建工具)


Makecert.exe(證書創建工具)

.NET Framework 4.5
 
其他版本
 
2(共 3)對本文的評價是有幫助 評價此主題
 

 

證書創建工具生成僅用於測試目的的 X.509 證書。 它創建用於數字簽名的公鑰和私鑰對,並將其存儲在證書文件中。 此工具還將密鑰對與指定發行者的名稱相關聯,並創建一個 X.509 證書,該證書將用戶指定的名稱綁定到密鑰對的公共部分。

說明 說明

有關 X.509 證書的概述,請參閱 使用證書

Makecert.exe 包含基本選項和擴展選項。 基本選項是最常用於創建證書的選項。 擴展選項提供更多的靈活性。

一定不要將此工具生成的證書私鑰存儲在 .snk 文件中。 如果需要存儲私鑰,則應使用密鑰容器。 關於如何在密鑰容器中存儲私鑰的更多信息,請參見 如何:將非對稱密鑰存儲在密鑰容器中

警告說明 警告

應使用證書存儲區來安全地存儲證書。此工具使用的 .snk 文件以不受保護的方式存儲私鑰。創建或導入 .snk 文件時,在使用期間應注意保證其安全,並在使用后將其移除。

安裝 Visual Studio 和 Windows SDK 時會自動安裝此工具。 要運行工具,我們建議您使用 Visual Studio 命令提示符或 Windows SDK 命令提示符(也稱 CMD Shell)。 您可以使用這些實用程序輕松運行工具,而不需要導航到安裝文件夾。 有關詳細信息,請參閱 Visual Studio 和 Windows SDK 命令提示

  • 如果您的計算機上已安裝了 Visual Studio:在任務欄上依次單擊 StartAll ProgramsVisual StudioVisual Studio ToolsVisual Studio Command Prompt

    - 或 -

    如果您的計算機上已安裝了 Windows SDK:在任務欄上依次單擊 StartAll Programs、Windows SDK 文件夾和 Command Prompt(或CMD Shell)。

  • 在命令提示處,鍵入下列命令:

 
 
makecert [options] outputCertificateFile
 

參數

描述

outputCertificateFile

測試 X.509 證書要寫入的 .cer 文件的名稱。

 

選項

描述

-n  name

指定主題的證書名稱。 此名稱必須符合 X.500 標准。 最簡單的方法是在雙引號中指定此名稱,並加上前綴 CN=;例如,-n "CN=myName"。

-pe

將所生成的私鑰標記為可導出。這樣可將私鑰包括在證書中。

-sk  keyname

指定主題的密鑰容器位置,該位置包含私鑰。 如果密鑰容器不存在,系統將創建一個。

-sr  location

指定主題的證書存儲位置。 location 可以為 currentuser(默認)或 localmachine

-ss  store

指定主題的證書存儲名稱,輸出證書即存儲在那里。

有關在本地系統發現的可顯示所有標准證書存儲區名稱的示例,請參閱 X509Store.Name 屬性。

-#  number

指定從 1 到 2,147,483,647 的序列號。 默認值是由 Makecert.exe 生成的唯一值。

-$  authority

指定證書的簽名權限,必須設置為 commercial (對於商業軟件發行者使用的證書)或 individual(對於個人軟件發行者使用的證書)。

-?

顯示此工具的命令語法和基本選項列表。

-!

顯示此工具的命令語法和擴展選項列表。

 

選項

描述

-a  algorithm

指定簽名算法。 algorithm 必須是 md5sha1(默認值)、sha256sha384 或 sha512

-b mm/dd/yyyy

指定有效期的開始時間。 當前日期的默認值。

-crl

生成證書重定位列表 (CRL) 而不是證書。

-cy  certType

指定證書類型。 有效值是 end(對於最終實體)和 authority (對於證書頒發機構)。

-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 提供程序名稱。 關於 CryptoAPI 提供程序名稱的信息,請參見 -sp

-ir  location

指定頒發者的證書存儲區的位置。location 可以是 currentuser(默認)或 localmachine

-is  store

指定頒發者的證書存儲名稱。

-iv  pvkFile

指定頒發者的 .pvk 私鑰文件。

-iy  type

指定頒發者的 CryptoAPI 提供程序類型。 關於 CryptoAPI 提供程序類型的信息,請參見 -sy 選項。

-l link

到策略信息的鏈接(例如,一個 URL)。

-len number

指定生成的密鑰長度(以位為單位)。

-m  number

以月為單位指定證書有效期的持續時間。

-nscp

包括 Netscape 客戶端身份驗證擴展。

-r

創建自簽署證書。

-sc  文件

指定主題的證書文件。

-sky  keytype

指定主題密鑰類型,必須是下列之一:signature(其中指出密鑰用於數字簽名),exchange(其中指出密鑰用於密鑰加密和密鑰交換),或一個整數,表示提供程序類型。默認情況下,可傳入1 表示交換密鑰,或2 表示簽名密鑰。

-sp  provider

指定主題的 CryptoAPI 提供程序名稱,該名稱必須在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider 的注冊表子項中已有定義。 如果 -sp 和 -sy 都出現, CryptoAPI 提供程序的類型應對應於提供程序的子項的 Type 值。

-sv  pvkFile

指定主題的 .pvk 私鑰文件。 如果該文件不存在,系統將創建一個。

-sy  type

指定主題的 CryptoAPI 提供程序類型,該類型必須在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\Defaults\Provider 的注冊表子項中已有定義。 如果 -sy 和 -sp 都出現, CryptoAPI 提供程序的類型應對應於提供程序的子項的 Name 值。

-tbs

指定需簽名的證書或 CRL 文件。

示例
 

下面的命令創建了一個由默認測試根頒發的測試證書並將其寫入 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

以下命令創建自簽名證書,該證書可以用於測試 web 應用程序,這個程序使用的是 URL 為 www.example.com web 的網絡服務器上的“安全套接字層”(SSL)。 由 -eku 選項定義的 OID 標識該證書作為 SSL 服務器證書。 證書存儲在 my 存儲,並在計算機(而非用戶)級別可用。 證書專用密鑰可用導出,證書有效期從 2010 年 5 月 10 日至 2011 年 12 月 22 日。

 
 
Makecert -r -pe -n CN="www.example.com" -b 05/10/2010 -e 12/22/2011 -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localmachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12

下面的命令創建了一些證書並將它們保存到存儲區。第一個命令使用默認測試根創建了一個證書並將其保存到存儲區。 第二個命令使用新創建的證書創建了另一個證書,並將第二個證書保存到另一個存儲區。

 
 
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




地址:http://msdn.microsoft.com/zh-cn/library/bfsktky3.aspx


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM