web-dev-qa-db-ja.com

Windowsフォームアプリケーションの発行者名を設定する方法

Windows Forms アプリケーションのセットアップを作成しました。このセットアップをWindows 7にインストールすると、次のように表示されます。

Name: my application.exe  
Publisher: unknown publisher  
Type: application  
From: my application.exe  

出版社名を設定したい。出版社名を設定するにはどうすればよいですか?

21
user847455

出力コードにデジタル署名する必要があります。記事Authenticodeを使用したコードの署名とチェックから始めましょう。

これの全体的な目的は、コードが改ざんされていないことを保証することです。認証局の1つから コード署名証明書を購入する の場合、「これを信頼しますか?」ウィンドウがまったく表示されないようにすることができます。

設定するのは簡単な作業ではありませんが、スクリプトを設定して実行すると実行できます。
簡単な解決策は見つかりません。

以下は、最も関連性の高いセクションのカットアンドペーストです。必要なものを正確に取得するには、さらに読む必要がある場合があります。


MakeCert

MakeCertテストプログラムを使用して、テストX.509証明書を生成します。 MakeCertは次のタスクを実行します。

  1. デジタル署名の公開鍵と秘密鍵のペアを作成し、選択した名前に関連付けます。
  2. キーペアを、選択した発行元の名前に関連付けます。
  3. X.509証明書を作成します。これは、テストルートキーまたは指定したキーで署名され、名前をキーペアの公開部分にバインドします。証明書は、ファイル、システム証明書ストア、またはその両方に出力されます。

MakeCert Internet Explorer 3.02 UPDの例

以下は、Microsoft Internet Explorer 3.02 UPDオプションを使用して証明書を作成する例です。

MakeCert -k:c:\KeyStore\MyKey.pvk -n:CN=MySoftwareCompany Cert.cer

この例では、Cert.cerという証明書ファイルが作成されます。 MyKeyと呼ばれるキーペアの公開部分は、発行元にバインドされています、MySoftwareCompany

Cert2SPC

証明書を生成した後、Cert2SPCプログラムでソフトウェア公開証明書を作成できます。このプログラムは、複数のX.509証明書PKCS#7署名にラップします-dataオブジェクト。このプログラムはテスト専用です。有効なソフトウェア公開証明書が認証局から取得されます。次に例を示します。

Cert2SPC MyCert.cer MyCert.spc

これは、X.509証明書MyCert.cerPKCS#7ソフトウェア発行証明書MyCert.spcと呼ばれます。

SignCode

最後のステップは、SignCodeプログラムを使用して実際にファイルに署名することです。このプログラムは:

  1. ファイルのCryptographic Digestを作成します。
  2. 秘密鍵でダイジェストに署名します。
  3. X.509証明書ソフトウェア公開証明書から新しいPKCS#7署名付きデータオブジェクト。 PKCS#7オブジェクトには、署名の作成に使用された証明書のシリアル番号と発行者、証明書、および署名済みダイジェスト情報が含まれています。
  4. オブジェクトをファイルに埋め込みます。
  5. オプションで、ファイルにタイムスタンプを追加できます。ファイルに署名するときは、常にタイムスタンプを追加する必要があります。ただし、SignCodeには、以前に署名されたファイルにタイムスタンプを追加する機能もあります(いくつかの制限があります(オプション表に続く例を参照))。

ファイルが署名され(有効な証明書があることを前提としています)、タイムスタンプが付けられると、ファイルを顧客に配布できます。テストプログラムMakeCertおよびCert2SPCで生成された証明書は、一般に配布されるコードの署名には無効です。独立系ソフトウェアベンダーは、一般に配布されるコードに署名するために、GTE、VeriSign Inc.、または別の証明機関から証明書を取得する必要があります。

Internet Explorer 3.02 UPDのSignCodeの例

Microsoft Internet Explorer 3.02 UPDオプションを使用してファイルに署名し、タイムスタンプを付ける方法の2つの例を次に示します。 1つ目は秘密鍵名MyKeyを使用し、2つ目は秘密鍵ファイルMy.pvk

SignCode -prog MyControl.exe -spc Cert.spc -pvk MyKey -timeStamper http://timestamp.verisign.com/scripts/timstamp.dll
SignCode -prog MyControl.exe -spc Cert.spc -pvk My.pvk -timeStamper http://timestamp.verisign.com/scripts/timstamp.dll

注上記のURLでは、timstamp.dllが正しいです。これは誤植ではありません。

どちらの場合も、PKCS#7オブジェクトのCert.spcがファイルMyControl.exeのダイジェストに埋め込まれています。最初の例では、ダイジェストはMyKeyキーペアの秘密キーで署名され、タイムスタンプが追加されます。 2番目の例では、ダイジェストは秘密鍵ファイルMy.pvkで署名され、タイムスタンプが追加されます。

21
Hand-E-Food