SignTool は、アプリ パッケージにデジタル署名したり、証明書をバンドルしたりするために使用されるコマンド ライン ツールです。 証明書は、ユーザーが (テスト目的で) 作成することも、会社が発行することもできます (配布用)。 アプリ パッケージに署名すると、署名後にアプリのデータが変更されていないことを確認しながら、署名したユーザーまたは会社の ID も確認できます。 SignTool では、暗号化または暗号化されていないアプリ パッケージとバンドルに署名できます。
Von Bedeutung
Visual Studio を使用してアプリを開発した場合は、Visual Studio ウィザードを使用してアプリ パッケージを作成して署名することをお勧めします。 詳細については、「 Visual Studio を使用して UWP アプリをパッケージ 化する」および「Visual Studio を 使用してソース コードからデスクトップ アプリをパッケージ化する」を参照してください。
コード署名と証明書全般の詳細については、「 コード署名の概要」を参照してください。
[前提条件]
パッケージ アプリ
アプリ パッケージを手動で作成する方法の詳細については、「 MakeAppx.exe ツールを使用してアプリ パッケージを作成する」を参照してください。有効な署名証明書
有効な署名証明書の作成またはインポートの詳細については、「 パッケージ署名用の証明書を作成またはインポートする」を参照してください。SignTool.exe
SDK のインストール パスに基づいて、 SignTool は Windows 10 PC 上にあります。- x86: C:\Program Files (x86)\Windows Kits\10\bin\<sdk バージョン>\x86\SignTool.exe
- x64: C:\Program Files (x86)\Windows Kits\10\bin\<sdk バージョン>\x64\SignTool.exe
SignTool の使用
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 値とそれに対応するハッシュ アルゴリズムを示しています。
| ハッシュメソッドの値 | ハッシュ アルゴリズム |
|---|---|
| http://www.w3.org/2001/04/xmlenc#sha256 | SHA256 |
| http://www.w3.org/2001/04/xmldsig-more#sha384 | SHA384 |
| http://www.w3.org/2001/04/xmlenc#sha512 | SHA512 |
注
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 <パスワード>" を省略します。
アプリ パッケージが有効な証明書で署名されたら、パッケージをストアにアップロードする準備が整います。 アプリをストアにアップロードして送信する方法の詳細については、「アプリの 申請」を参照してください。