トップ回答者
Visual Studio 2013でドライバのコード署名証明書を認識してくれません。

質問
-
以前までは、Signtool.exeを使ってドライバに埋め込み署名を自分でやっていたのですが、Visual Studio 2013 + WDK8.1
では、自動でやってくれるので、やってみたらコード署名の証明書を認識してくれません。
「Driver Signing」 - 「Production Certificate」を選択すると、証明書ストアから証明書を選択するか、
証明書ファイルを選ぶか、聞いてきます。まず証明書ファイルを選ぶことにします。
COMODOのコード署名の証明書を選ぶと、Error Opning fileのメッセージがでます。
Invalid certificate or password.
というメッセージですが、正しい証明書で、パスワードも正しいです。余談ですが、メッセージが悪いと思います。
PFXVerifyPassword()という関数を使えば、パスワードが悪いのかどうか判定できます。
つぎに証明書ストアにCOMODOのコード署名の証明書をインポートして証明書ストアから
選択してみましたが、COMODOのコード署名の証明書が見つかりません。
ちなみに 「Test Certificate」で証明書ストアから選択すると、COMODOのコード署名の証明書は
見つかります。
COMODOのドライバ用の中間CA証明書をインポートしてみましたが、やはり、「Production Certificate」では
証明書は見つかりません。
バグのように見えてならないのですが、お教えいただけないでしょうか?
Visual Studio 2013 Update1にアップデートしてもダメでした。
システム情報は、
Microsoft Visual Studio Professional 2013
Version 12.0.30110.00 Update 1
Microsoft .NET Framework
Version 4.5.50938インストールされているバージョン:Professional
LightSwitch for Visual Studio 2013 06177-179-2397502-02890
Microsoft LightSwitch for Visual Studio 2013Microsoft Office Developer Tools for Visual Studio 2013 日本語 06177-179-2397502-02890
Microsoft Office Developer Tools for Visual Studio 2013 日本語Microsoft Visual Studio 2013 コード分析のスペル チェック機能 06177-179-2397502-02890
MicrosoftR Visual StudioR 2013 コード分析のスペル チェック機能Portions of International CorrectSpell? spelling correction system c 1993 by Lernout & Hauspie Speech Products N.V. All rights reserved.
The American HeritageR Dictionary of the English Language, Third Edition Copyright c 1992 Houghton Mifflin Company. Electronic version licensed from Lernout & Hauspie Speech Products N.V. All rights reserved.
Team Explorer for Visual Studio 2013 06177-179-2397502-02890
Microsoft Team Explorer for Visual Studio 2013Visual Basic 2013 06177-179-2397502-02890
Microsoft Visual Basic 2013Visual C# 2013 06177-179-2397502-02890
Microsoft Visual C# 2013Visual C++ 2013 06177-179-2397502-02890
Microsoft Visual C++ 2013Visual F# 2013 06177-179-2397502-02890
Microsoft Visual F# 2013ASP.NET Web Frameworks and Tools 2012.2 4.1.21001.0
For additional information, visit http://go.microsoft.com/fwlink/?LinkID=309563ASP.NET Web Frameworks and Tools 2013 5.0.11213.0
For additional information, visit http://www.asp.net/Common Azure Tools 1.0
Azure モバイル サービスおよび Windows Azure Tools で使用する共通サービスを提供します。Debugging Tools for Windows 6.3.9600.16384
Integrates the Windows Debugger functionality (http://go.microsoft.com/fwlink/?linkid=223405) in Visual Studio.InstallShield Limited Edition
InstallShield. For more information visit the Flexera Software website at <http://www.FlexeraSoftware.com>. Copyright c 2013 Flexera Software LLC. All Rights Reserved.Microsoft Web Developer Tools 2013 2.0.40926.0
Microsoft Web Developer Tools には、次のコンポーネントが含まれています:
ASP.NET Web プロジェクトの作成とオープンに対するサポート
ブラウザー リンク: Visual Studio とブラウザー間の通信チャネル
HTML、CSS、および JavaScript のエディター拡張機能
Page Inspector: ASP.NET Web プロジェクトの検査ツール
スキャフォールディング: コード ジェネレーターを構築し、実行するためのフレームワーク
Windows Azure Web サイトのサーバー エクスプローラー拡張機能
Web 発行: ホスティング プロバイダー、社内サーバー、または Windows Azure に ASP.NET Web プロジェクトを発行するための拡張機能NuGet パッケージ マネージャー 2.7.41101.371
Visual Studio の NuGet パッケージ マネージャー。NuGet の詳細については、http://docs.nuget.org/ を参照してください。PreEmptive Analytics Visualizer 1.2
Microsoft Visual Studio extension to visualize aggregated summaries from the PreEmptive Analytics product.SQL Server Data Tools 12.0.30919.1
Microsoft SQL Server Data ToolsWindows Azure Mobile Services Tools 1.0
Windows Azure Mobile Services ToolsWindows Driver Kit 6.3.9600.16384
Headers, libraries, and tools needed to develop, debug, and test Windows drivers (msdn.microsoft.com/en-us/windows/hardware/gg487428.aspx)Workflow Manager Tools 1.0 1.0
このパッケージには、Workflow Manager に必要な Visual Studio 統合コンポーネントが含まれています。
- 編集済み izuna 2014年2月17日 2:09
回答
-
フォーラム オペレーターの星 睦美です。
izuna さんから、こちらの問題をMicrosoft Connect に投稿いただきました。
フォーラムのスレッドにリンクさせていただきます。・Visual Studio 2013でドライバのコード署名証明書を認識してくれません。:
https://connect.microsoft.com/VisualStudio/feedback/details/817587/visual-studio-2013フォーラム オペレーター 星 睦美 - MSDN Community Support
- 回答としてマーク 星 睦美 2014年3月3日 2:59
すべての返信
-
フォーラム オペレーターの星 睦美です。
izuna さんから、こちらの問題をMicrosoft Connect に投稿いただきました。
フォーラムのスレッドにリンクさせていただきます。・Visual Studio 2013でドライバのコード署名証明書を認識してくれません。:
https://connect.microsoft.com/VisualStudio/feedback/details/817587/visual-studio-2013フォーラム オペレーター 星 睦美 - MSDN Community Support
- 回答としてマーク 星 睦美 2014年3月3日 2:59
-
もう読んでいないと思いますが、GlobalSignのSHA-2コードサイニング証明書でよく似た(同じ?)ハマり方をしたのでメモしておきます。
signtool.exeで署名する際には取得したコードサイン証明書の他に、各証明局に対応する「カーネルモードのコード署名用クロス証明書」も使用しているかと思います。VisualStudio2013&WDK8.1で署名する場合、このクロス証明書を指定のフォルダに入れておく必要があります。
https://msdn.microsoft.com/windows/hardware/drivers/develop/signing-a-driver-for-public-release
VS2013とWDK8.1の標準的なインストールであれば具体的には下記になります。
C:\Program Files (x86)\Windows Kits\8.1\CrossCertificates
ここにはDigiCertやGeoTrustとかのクロス証明書は最初から入っているのですが、自分の証明書の証明局に対応したクロス証明書が入っていない場合は自分で対応するクロス証明書を配置します。これを入れておかないと正規のコードサイニング証明書であってもProduction Signで選択できず、Test Signでは選択できる状況になるようです。