方法 : アプリケーション マニフェストおよび配置マニフェストに署名する
ClickOnce 配置を使用してアプリケーションを発行しようとする場合は、アプリケーション マニフェストと配置マニフェストに、公開キーと秘密キーのペアを使用して署名し、さらに Authenticode テクノロジを使用して署名する必要があります。これらのマニフェストには、Windows 証明書ストアの証明書またはキー ファイルを使用して署名できます。
ClickOnce 配置の詳細については、"ClickOnce のセキュリティと配置 (ClickOnce のセキュリティと配置)" を参照してください。
.exe ベースのアプリケーションでは、ClickOnce マニフェストの署名を省略できます。詳細については、このドキュメントの「未署名のマニフェストの生成」を参照してください。
キー ファイル作成の詳細については、「方法 : 公開キーと秘密キーのキー ペアを作成する」を参照してください。
[!メモ]
Visual Studio では、拡張子 .pfx を持つ Personal Information Exchange (PFX) キー ファイルだけがサポートされます。ただし、プロジェクトのプロパティの [署名] ページにある [ストアから選択] をクリックすると、現在のユーザーの Windows 証明書ストアから、他の種類の証明書を選択できます。
証明書を使用してアプリケーション マニフェストおよび配置マニフェストに署名するには
プロジェクトのプロパティ ウィンドウへ移動 (ソリューション エクスプローラー でプロジェクト ノードを右クリックして [プロパティ] をクリックするか、[クイック起動] ウィンドウにプロジェクトのプロパティを入力するか、ソリューション エクスプローラー ウィンドウ内で Alt キーを押しながら Enter キーを押す) します。[署名] タブの [ClickOnce マニフェストに署名する] チェック ボックスをオンにします。
[ストアから選択] をクリックします。
[証明書の選択] ダイアログ ボックスが表示され、Windows 証明書ストアの内容が表示されます。
ヒント [証明書のプロパティを表示します] をクリックすると、[証明書の詳細] ダイアログ ボックスが表示されます。このダイアログ ボックスには、証明書の詳細情報、および追加オプションが含まれています。追加のヘルプ情報を表示するには [証明書] をクリックします。
マニフェストの署名に使用する証明書を選択します。
また、[タイムスタンプ サーバーの URL] ボックスでタイムスタンプ サーバーのアドレスを指定することもできます。このサーバーは、マニフェストの署名日時を示すタイムスタンプを提供します。
既存のキー ファイルを使用してアプリケーション マニフェストおよび配置マニフェストに署名するには
[署名] ページの [ClickOnce マニフェストに署名する] チェック ボックスをオンにします。
[ファイルから選択] をクリックします。
[ファイルの選択] ダイアログ ボックスが表示されます。
[ファイルの選択] ダイアログ ボックスで、使用するキー ファイル (.pfx) の場所を参照し、[開く] をクリックします。
[!メモ]
このオプションは、拡張子 .pfx を持つファイルのみをサポートします。これ以外の形式のキー ファイルや証明書がある場合は、Windows 証明書ストアに格納し、前の手順で説明した証明書を選択します。選択した証明書の用途に、コードの署名が含まれている必要があります。
[ファイルを開くためのパスワードの入力] ダイアログ ボックスが表示されます。.pfx ファイルが既に Windows 証明書ストアに格納されている場合やパスワードで保護されていない場合、パスワードの入力は求められません。
キー ファイルにアクセスするためのパスワードを入力し、Enter キーを押します。
テスト証明書を使用してアプリケーション マニフェストおよび配置マニフェストに署名するには
[署名] ページの [ClickOnce マニフェストに署名する] チェック ボックスをオンにします。
テスト用の新しい証明書を作成するには、[テスト証明書の作成] をクリックします。
[テスト証明書の作成] ダイアログ ボックスで、テスト証明書をセキュアにするためにパスワードを入力します。
未署名のマニフェストの生成
.exe ベースのアプリケーションでは、ClickOnce マニフェストの署名を省略できます。次の手順は、未署名の ClickOnce マニフェストを生成する方法を示しています。
重要 |
---|
未署名のマニフェストにより、アプリケーションの開発およびテストを簡略化できます。しかし、未署名のマニフェストは、稼動環境に重大なセキュリティ上の問題を発生させます。インターネットまたは他の悪意のあるコードの提供元から完全に分離されたイントラネット内のコンピューターで ClickOnce アプリケーションを実行する場合のみ、未署名のマニフェストの使用を検討してください。 |
既定では、ClickOnce は、生成されるハッシュから 1 つ以上のファイルが除外されるよう指定されていない限り、自動的に署名付きマニフェストを生成します。つまり、すべてのファイルがハッシュに含まれ、[ClickOnce マニフェストに署名する] チェック ボックスがオフの場合でも、アプリケーションの発行により署名付きマニフェストが生成されます。
未署名マニフェストを生成し、生成されるハッシュにすべてのファイルを含めるには
ハッシュにすべてのファイルが含まれる未署名マニフェストを生成するには、まず署名付きマニフェストと共にアプリケーションを発行する必要があります。したがって、前のいずれかの手順に従って ClickOnce マニフェストに署名してから、アプリケーションを発行します。
[署名] ページの [ClickOnce マニフェストに署名する] チェック ボックスをオフにします。
アプリケーションの 1 つのバージョンのみ使用できるように発行バージョンをリセットします。既定では、アプリケーションを発行するたびに発行バージョンのリビジョン番号が自動的にインクリメントされます。詳細については、「方法 : ClickOnce の発行バージョンを設定する」を参照してください。
アプリケーションを発行します。
未署名マニフェストを生成し、生成されるハッシュから 1 つ以上のファイルを除外するには
[署名] ページの [ClickOnce マニフェストに署名する] チェック ボックスをオフにします。
[アプリケーション ファイル] ダイアログ ボックスを開き、生成されるハッシュから除外するファイルに対して [ハッシュ] を [除外] に設定します。
[!メモ]
ハッシュからファイルを除外すると、ClickOnce によるマニフェストの自動署名が無効になるため、前の手順のように、最初に署名付きマニフェストで発行する必要がありません。
アプリケーションを発行します。