- [アーティクル]
-
-
SignTool は、アプリ パッケージにデジタル署名したり、証明書をバンドルしたりするために使用されるコマンド ライン ツールです。 証明書は、ユーザーが (テスト目的で) 作成することも、会社が発行することもできます (配布用)。 アプリ パッケージに署名すると、署名後にアプリのデータが変更されていないことを確認しながら、署名したユーザーまたは会社の ID も確認できます。 SignTool では、暗号化または暗号化されていないアプリ パッケージとバンドルに署名できます。
コード署名と証明書全般の詳細については、「コード署名の概要」を参照してください。
パッケージ アプリ
アプリ パッケージを手動で作成する方法の詳細については、「MakeAppx.exe ツールを使用してアプリ パッケージを作成する」を参照してください。
有効な署名証明書
有効な署名証明書の作成またはインポートの詳細については、「パッケージ署名用の証明書を作成またはインポートする」を参照してください。
SignTool.exe
SDK のインストール パスに基づいて、 SignTool は Windows 10 PC 上にあります。
- x86: C:\Program Files (x86)\Windows Kits\10\bin\<sdk version>\x86\SignTool.exe
- x64: C:\Program Files (x86)\Windows Kits\10\bin\<sdk version>\x64\SignTool.exe
SignTool を 使用すると、ファイルへの署名、署名やタイムスタンプの確認、署名の削除などを行うことができます。 アプリ パッケージに署名するために、sign コマンドに焦点を当てます。 SignTool の詳細については、SignTool リファレンス ページを参照してください。
SignTool を使用してアプリ パッケージまたはバンドルに署名する場合、SignTool で使用されるハッシュ アルゴリズムは、アプリのパッケージ化に使用したアルゴリズムと同じである必要があります。 たとえば、MakeAppx.exe を使用して既定の設定でアプリ パッケージを作成した場合は、SignTool を使用するときに SHA256 を指定する必要があります。これは MakeAppx.exe で使用される既定のアルゴリズムであるためです。
アプリのパッケージ化中に使用されたハッシュ アルゴリズムを確認するには、アプリ パッケージの内容を抽出し、AppxBlockMap.xml ファイルを調べます。 アプリ パッケージをアンパック/抽出する方法については、「パッケージまたはバンドルからファイルを抽出する」を参照してください。 ハッシュ メソッドは BlockMap 要素内にあり、次の形式です。
<BlockMap xmlns="http://schemas.microsoft.com/appx/2010/blockmap"
HashMethod="http://www.w3.org/2001/04/xmlenc#sha256">
次の表は、各 HashMethod 値とそれに対応するハッシュ アルゴリズムを示しています。
注意
SignTool の既定のアルゴリズムは SHA1 (MakeAppx.exe では使用できません) であるため、SignTool を使用するときは常にハッシュ アルゴリズムを指定する必要があります。
すべての前提条件を満たして、アプリのパッケージ化に使用されたハッシュ アルゴリズムを決定したら、それに署名する準備が整います。
SignTool パッケージ署名の一般的なコマンド ライン構文は次のとおりです。
SignTool sign [options] <filename(s)>
アプリの署名に使用する証明書は、.pfx ファイルであるか、証明書ストアにインストールされている必要があります。
.pfx ファイルの証明書を使用してアプリ パッケージに署名するには、次の構文を使用します。
SignTool sign /fd <Hash Algorithm> /a /f <Path to Certificate>.pfx /p <Your Password> <File path>.appx
SignTool sign /fd <Hash Algorithm> /a /f <Path to Certificate>.pfx /p <Your Password> <File path>.msix
この/a
オプションを使用すると、SignTool は最適な証明書を自動的に選択できます。
証明書が .pfx ファイルでない場合は、次の構文を使用します。
SignTool sign /fd <Hash Algorithm> /n <Name of Certificate> <File Path>.appx
SignTool sign /fd <Hash Algorithm> /n <Name of Certificate> <File Path>.msix
または、次の構文を使用して、証明書の名前ではなく、目的の証明書の <> SHA1 ハッシュを指定することもできます。
SignTool sign /fd <Hash Algorithm> /sha1 <SHA1 hash> <File Path>.appx
SignTool sign /fd <Hash Algorithm> /sha1 <SHA1 hash> <File Path>.msix
その他の例については、「SignTool を使用してファイルに署名する」を参照してください。
一部の証明書ではパスワードが使用されないことに注意してください。 証明書にパスワードがない場合は、サンプル コマンドから "/p <パスワード>" を省略します。
アプリ パッケージが有効な証明書で署名されたら、パッケージをストアにアップロードする準備が整います。 アプリをストアにアップロードして送信する方法の詳細については、「アプリの申請」を参照してください。