2013-04-09 15 views
13

DigiCertからEVコード署名証明書を購入し、MSIに署名してWindows SmartScreen警告メッセージを回避しました。問題は、証明書が秘密鍵のエクスポートを許可しないUSBトークンに配信されたことです。私たちのビルド環境はホストされたVM上にあるので、USBトークンをホストVMに接続する方法はありません。仮想マシン上のEVコード署名証明書を使用してMSIに署名する方法

ホストされているVMでEVコード署名証明書を使用するソリューションはありますか?すべての証明書ベンダーがこのタイプの証明書をハードウェアトークンに渡しますか?このタイプのCertを使用して、仮想環境でMSIにどのように署名するのですか?

+0

私は同じ質問があります。これに関する何かの発見? –

+0

[オートエクステント検証(EV)コードの署名](http://stackoverflow.com/questions/17927895/automate-extented-validation-ev-code-signing) –

答えて

1

秘密鍵を格納するために特別なハードウェアを使用するには、EVコードの署名証明書が必要です。これは、標準的な証明書よりも高価で安全なものの一部です。私の提案は、ビルド後のステップとしてsigntool.exeを使用してホストマシン上の実行可能ファイルに署名することです。

通常のコード署名証明書にはハードウェア要件はありませんが、EV証明書のように「SmartScreen Filter Friendly」ではありません。

0

VMwareを含むいくつかの仮想化ソフトウェアは、USBデバイスのリダイレクトを許可しています。

+1

の複製が可能です。リモートデスクトップではなくvncのVM – azhrei

+0

@azhreiリモートデスクトップを使用しているときにドングルが接続されていないように見えるのはなぜですか?一度コンソールウィンドウを使用すると、正常に表示されます(証明書ソフトウェアはドングルを認識します) –

+0

@NeilVarnasなぜか分かりません - ドングルドライバがコンソールにいることを明示的に要求しているセキュリティ目的のために – azhrei

2

私は私たちに全く問題はありませんでした。私たちは、PFX(ファイル)に裏付けされた標準コード署名証明書を、USBトークンでバックアップされたEVコード署名証明書に15分以内に切り替えました。

私は単純にはVMWareでクライアント OS(デバイス用のクライアントOSのウィンドウの右下にあるアイコンを参照)に接続するためのUSBトークンデバイスは、必要なデバイスドライバをインストールし、ロックを解除するためのパスワードを要求するようにオプションを設定する設定セッションごとに1回のみ、その後は行きました。

署名方法は、他の証明書と同様に署名します。他の適用可能なコード署名証明書がOSの証明書ストアにない場合、は、証明書がどこにあるかを指定する必要はありません。

私はトラブルが起きると心配しましたが、しませんでした。だから、私はあなたがそうするつもりはないと思うし、なぜトラブルが起きるのか分からない。

+0

VM上でisntallign証明書を作成した後、cmdを使用してアセンブリに署名することはできますが、ビルドエージェント(ここではTeam City)はコマンドラインを実行しようとするか、 「SignTool Error:指定されたすべての基準を満たした証明書が見つかりませんでした」と表示されます。ビルドエージェントは、そのマシンの管理者です。あなたはこれに遭遇しましたか?多分あなたはあなたの設定を詳しく説明できないでしょうか? –

+0

@NeilVarnasはあなたのsigntool cmdsに '/ debug'を追加して、どのsigntoolがTeamCityのケースであなたの証明書をすべて削除しているかを確認します。 signtoolの呼び出しを調整して、どの証明書を選択するかについてのヒントをsigntoolに与えることができます。 – azhrei

+0

@NeilVarnasいいえ、私はそれに遭遇したことはありません。あなたのビルドエージェントに固有のもののようなものです。すべての私の署名はsigntool.exeによって行われます。 –

0

この問題を抱えている人は誰でも、VNCサーバーを使ってトークンを持つVMに接続します。それはRDPだけのVNCで動作しませんでした。

明らかに、VNCはコンソールへのコンソールアクセス(RV Dongleに関する限り)のようです。