EV コード署名証明書を使用したClickOnce アプリケーションのマニフェスト署名について

こんにちは。Visual Studio サポート チームです。

今回は EV コード署名証明書を使用して ClickOnce アプリケーションにマニフェスト署名を行う際に、ご注意いただきたい事項をご案内します。

コード署名証明書を使用し、ClickOnceアプリケーションにマニフェスト署名した場合、アプリケーションの配布や実行時に「発行元」を表示し、「改ざんがされていない正規品」であることをユーザーに明示することが可能となります。
その際に使用する証明書は、大きく分けて通常のコード署名証明書と EV コード署名証明書の 2 種類があります。

EV コード署名証明書は、証明書を発行する認証局による審査に高い基準があり、また、署名時に二要素認証を求められるなど、通常の証明書と比べてより信頼性が高いものとなります。
EV コード署名証明書を使用して、ClickOnceアプリケーションに署名し、ユーザーに署名したアプリケーションを配布するためには、以下の要件を満たす必要があります。
 
 

ClickOnce アプリケーションの開発環境の要件

マニフェスト署名のため、EV コード署名証明書に対応したバージョンである、Visual Studio 2015 以降のバージョンをご利用頂く必要があります。

ClickOnce アプリケーションをインストールする環境の要件 

マニフェスト署名の検証のため、.NET Framework 4.6 以降のバージョンを事前にインストールしていただく必要があります。

 
 

  • ClickOnceアプリケーションのマニフェスト署名 

Visual Studio 2015以上のバージョンではEVコード署名証明書を使用したアプリケーションの署名に対応しています。
そのため、EVコード署名証明書を使用し、アプリケーションに署名をする際には、Visual Studio 2015をご利用ください。

なお、Visual Studio 2013 以前のバージョンで、EVコード署名証明書を使用して、アプリケーションに署名をした場合には、ビルドと発行は正常に終了しますが、実際には署名が正常に完了していないため、ClickOnceアプリケーション起動時のダイアログに表示される発行元は "不明な公開元" として表示されます。

EV

 
 

  • ClickOnceアプリケーションの実行

ClickOnceアプリケーションの実行時に、EVコード署名証明書を使用した署名を検証するためには、.NET Framework 4.6以上のバージョンが予め、実行環境にインストールされている必要があります。
これは、.NET Framework 4.6 以上のバージョンでEVコード署名証明書の実行時の検証に対応しているためとなります。

ClickOnceアプリケーションのマニフェスト署名の検証は、.NET Frameworkが提供する dfsvc.exe により実行されます。
また、ClickOnceアプリケーションのマニフェスト署名と配布される実行モジュールのランタイムのバージョンは共に依存はしません。
そのため、例えば、.NET Framework 3.5 SP1で開発されたアプリケーションをVisual Studio 2015でEVコード署名証明書を使用し、マニフェスト署名をしてユーザーに対して発行した場合、アプリケーションの実行環境には、マニフェスト署名の検証のために .NET Framework 4.6 以上のバージョンが、また、アプリケーションの実行ランタイムとして .NET Framework 3.5 SP1がそれぞれインストールされている必要があります。

 

例: 実行環境にインストールが必要な .NET Framework
---------------------------------------------------------

マニフェスト署名のため → .NET Framework 4.6以上のバージョン

アプリケーションの実行のため → .NET Framework 3.5 SP1

 

 

Windows 8 以降の SmartScreen 機能による警告を回避するために EV コード署名証明書の使用を検討される場合は、この前提条件を踏まえてください。

なお、大変恐縮ではございますが、EV コード署名証明書の対応について、Visual Studio 2013 以前のバージョンおよび .NET Framework 4.6 未満のバージョンへの対応は現在のところ予定されておりません。

 

< 参考情報 >

ClickOnce アプリケーションとSmartScreen につきましては、当ブログの下記の投稿でご案内しています。こちらもご参考ください。

 
Windows 8 でインターネット ゾーンの ClickOnce アプリケーションを実行する場合の SmartScreen 動作について

< https://blogs.msdn.microsoft.com/jpvsblog/2013/08/06/windows-8-clickonce/>