2012-06-27 22 views
22

証明書サーバーからコード署名証明書を発行しました。また、同じ証明書サーバーからルート証明書を発行しました。 ルート証明書は、信頼されたルート証明機関のフォルダー内の現在のユーザー証明書ストアとローカルコンピューター証明書ストアの両方に存在します。は私が成功しはときSignTool.exeウィザードを使用してDLLに署名しました:なぜ私のルート証明書が信頼できないのですか?

"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\signtool.exe" signwizard <MyDLLName>.dll 

をしかし、私は私のDLLを確認しようとすると、それが次のエラーでの検証が失敗します。

"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\signtool.exe" verify <MyDLLName>.dll 
SignTool Error: A certificate chain processed, but terminated in a root certificate which is not trusted by the trust provider. 
SignTool Error: File not valid: <MyDLLName>.dll 

のはなぜですこれは起こっている?私は信頼されたルート証明機関フォルダのルート証明書がDLLを確認すると思った。

答えて

49

verifyコマンドで/ paオプションを追加して、Windows Driver Verification Policyの代わりにDefault Authentication Verification Policyを使用するように指示します。つまり、Microsoft Trustsの限定されたCAセットではなく証明書ストアを確認します。ドライバ。

は、より多くのオプションのためにここを見て: http://msdn.microsoft.com/en-us/library/8s9b9yaz(v=vs.90).aspx

+0

こんにちはケビン、私は自分が主催するWCFサービスを呼び出すためにしようとしています上記のオプションの作業をローカルにSSLをインストールし、SSL証明書に署名しましたか?使用する完全なコマンドを送信できますか?私は.pfxファイルと.cerファイルの両方を持っていますが、ASP.netはSSLプロバイダを信頼できません。 –

+0

@SanjayZalke Windows証明書管理ツールを使用して、ローカルコンピュータの信頼されたルートCAフォルダに証明書をインストールすることができます。 mmc.exeから起動し、証明書スナップインを追加することができます。 –

+5

ここで重要な点は、KERNEL DRIVER(.sys)でこれを行う場合、カーネルドライバは最終的にMicrosoftルート証明書によって信頼される必要があるため、これは機能しません。上記の/ paオプションを追加すると、検証自体は成功しますが、ドライバは実際にはロードされませんが、Unsigned driver errorと表示されます。ブートアップ中、カーネルは完全な証明書ストアにアクセスすることができないため、ドライバを使用してCAの限定されたMicrosoft信頼のセットのみを見ることができます。 – Syclone0044

関連する問題