如何建立應用程式套件簽署憑證
重要
MakeCert.exe 已被取代。 如需建立憑證的目前指引,請參閱 建立套件簽署憑證。
瞭解如何使用 MakeCert.exe 和 Pvk2Pfx.exe 來建立測試程式代碼簽署憑證,以便簽署 Windows 應用程式套件。
部署之前,您必須先以數位方式簽署已封裝的 Windows 應用程式。 如果您未使用 Microsoft Visual Studio 2012 來建立及簽署應用程式套件,您必須建立和管理自己的程式代碼簽署憑證。 您可以使用 Windows 驅動程式套件 (WDK) 中的 MakeCert.exe 和 Pvk2Pfx.exe 來建立憑證。 然後,您可以使用憑證來簽署應用程式套件,以便部署在本機進行測試。
您需要知道的事項
技術
先決條件
- 從 WDK 的 MakeCert.exe 和 Pvk2Pfx.exe 工具
說明
步驟 1:判斷套件的發行者名稱
若要使您建立的簽署憑證可用於您想要簽署的應用程式套件,該簽署憑證的主體名稱必須與該應用程式的 AppxManifest.xml 中 Identity 元件的 Publisher 屬性相吻合。 例如,假設 AppxManifest.xml 包含:
<Identity Name="Contoso.AssetTracker"
Version="1.0.0.0"
Publisher="CN=Contoso Software, O=Contoso Corporation, C=US"/>
對於您在下一個步驟中使用 MakeCert 公用程式指定的 publisherName 參數,請使用 “CN=Contoso Software, O=Contoso Corporation, C=US”。
注意
此參數位符串是以引號指定,而且區分大小寫和空格符。
針對 AppxManifest.xml 中 Identity 元素定義的 Publisher 屬性字串,必須與憑證主體名稱的 MakeCert /n 參數所指定的字符串相同。 盡可能複製並貼上字串。
步驟 2:使用 MakeCert.exe 建立私鑰
使用 MakeCert 公用程式來建立自我簽署的測試憑證和私鑰:
MakeCert /n publisherName /r /h 0 /eku "1.3.6.1.5.5.7.3.3,1.3.6.1.4.1.311.10.3.13" /e <expirationDate> /sv MyKey.pvk MyKey.cer
此命令會提示您提供 .pvk 檔案的密碼。 我們建議您選擇 強密碼,並將私鑰保留在安全的位置。
基於下列原因,建議您在上述範例中使用建議的參數:
-
/r
-
建立自我簽署根憑證。 這可簡化測試憑證的管理。
-
/h 0
-
將憑證的基本限制標示為終端實體。 這可防止將憑證作為可以簽發其他憑證的憑證授權單位(CA)使用。
-
/eku
-
設定憑證的增強金鑰使用方式 (EKU) 值。
注意
請勿在兩個逗號分隔值之間放置空格。
- 1.3.6.1.5.5.7.3.3 表示憑證適用於程式代碼簽署。 請一律指定這個值來限制用於憑證的用途。
- 1.3.6.1.4.1.311.10.3.13 表示憑證遵守存留期簽署。 一般而言,如果簽章是時間戳,只要憑證在時間戳時有效,即使憑證過期,簽章仍有效。 無論簽章是否加上時間戳記,此 EKU 都會強制簽章過期。
-
/e
-
設定憑證的到期日。 請在「expirationDate」參數中提供「mm/dd/yyyy」格式的值。 我們建議您只針對測試目的選擇到期日,通常少於一年。 此到期日搭配有效期簽署 EKU 使用,可以有助於限制憑證被入侵和濫用的時間範圍。
如需其他選項的詳細資訊,請參閱 MakeCert。
步驟 3:使用 Pvk2Pfx.exe 建立個人資訊交換 (.pfx) 檔案
使用 Pvk2Pfx 公用程式,將 MakeCert 建立的 .pvk 和.cer檔案轉換成 .pfx 檔案,以便搭配 SignTool 簽署應用程式套件:
Pvk2Pfx /pvk MyKey.pvk /pi pvkPassword /spc MyKey.cer /pfx MyKey.pfx [/po pfxPassword]
MyKey.pvk 和 MyKey.cer 檔案是上一個步驟中建立 MakeCert.exe 相同的檔案。 藉由使用選擇性 /po 參數,您可以為產生的 .pfx 指定不同的密碼;否則,.pfx 的密碼與 MyKey.pvk相同。
如需其他選項的詳細資訊,請參閱 Pvk2Pfx。
備註
建立 .pfx 檔案之後,您可以使用 檔案搭配 SignTool 來簽署應用程式套件。 如需詳細資訊,請參閱 如何使用 SignTool簽署應用程式套件。 但是,在您將其安裝到本機計算機的受信任憑證存放區之前,本機計算機仍不會信任憑證以部署應用程式套件。 您可以使用 Windows 隨附的 Certutil.exe的工具或程式。
使用 WindowsCertutil.exe 安裝憑證
以系統管理員身分執行 Cmd.exe。
執行此指令:
Certutil -addStore TrustedPeople MyKey.cer
如果憑證不再使用,建議您移除憑證。 從相同的系統管理員命令提示字元中,執行此命令:
Certutil -delStore TrustedPeople certID
certID 是憑證的序號。 執行此指令來判斷憑證序號:
Certutil -store TrustedPeople
安全性考慮
藉由將憑證新增至 本機計算機證書存儲,您就會影響計算機上的所有用戶的憑證信任。 建議您將任何您希望用於測試應用程式套件的程式碼簽署憑證安裝到受信任的用戶憑證存儲中。 當不再需要憑證時,請立即移除這些憑證,以防止它們用來危害系統信任。
相關主題
-
範例
-
概念
-
如何使用 SignTool 簽署應用程式套件