如何建立應用程式套件簽署憑證

重要

MakeCert.exe已被取代。 如需建立憑證的目前指引,請參閱 建立套件簽署的憑證。

 

瞭解如何使用MakeCert.exePvk2Pfx.exe來建立測試程式代碼簽署憑證,以便簽署 Windows 應用程式套件。

部署之前,您必須先以數位方式簽署已封裝的 Windows 應用程式。 如果您未使用 Microsoft Visual Studio 2012 來建立及簽署應用程式套件,則必須建立及管理您自己的程式代碼簽署憑證。 您可以使用 Windows 驅動程式套件 (WDK) 中的MakeCert.exePvk2Pfx.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

設定憑證的到期日。 提供 mm/dd/yyyy 格式的 expirationDate 參數值。 我們建議您只針對測試目的選擇到期日,通常少於一年。 此到期日會與存留期簽署 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 安裝憑證

  1. 以系統管理員身分執行 Cmd.exe

  2. 執行此命令:

    Certutil -addStore TrustedPeople MyKey.cer
    

如果憑證不再使用,建議您移除憑證。 從相同的系統管理員命令提示字元中,執行此命令:

Certutil -delStore TrustedPeople certID

certID 是憑證的序號。 執行此指令來判斷憑證序號:

Certutil -store TrustedPeople

安全性考量

將憑證新增至 本機計算機證書存儲,即可影響計算機上的所有用戶的憑證信任。 建議您安裝任何程式代碼簽署憑證,以將應用程式套件測試至受信任的 人員 證書存儲。 當不再需要憑證時,請立即移除這些憑證,以防止它們用來危害系統信任。

範例

建立應用程式套件範例

概念

程式代碼簽署最佳做法

如何使用 SignTool 簽署應用程式套件

簽署應用程式套件