Windows でコード署名用の自己署名証明書を作成するにはどうすればいいですか? 質問する

Windows でコード署名用の自己署名証明書を作成するにはどうすればいいですか? 質問する

Windows SDK を使用してコード署名用の自己署名証明書を作成するにはどうすればよいですか?

ベストアンサー1

更新された回答

Windows Server 2012、Windows Server 2012 R2、またはWindows 8.1以降のWindowsバージョンを使用している場合は、MakeCertは廃止されましたマイクロソフトでは、PowerShell コマンドレットNew-SelfSignedCertificate

Windows 7などの古いバージョンを使用している場合は、MakeCertまたは別のソリューションを使用する必要があります。提案する公開鍵インフラストラクチャ Powershell (PSPKI) モジュール

元の回答

自己署名コード署名証明書(SPC -ソフトウェア発行者証明書) を一度に実行したい場合は、次の操作を行うことを好みます。

自己署名証明機関 (CA) の作成

makecert -r -pe -n "CN=My CA" -ss CA -sr CurrentUser ^
         -a sha256 -cy authority -sky signature -sv MyCA.pvk MyCA.cer

(^ = バッチコマンドラインで行を折り返すことを許可する)

これにより、エクスポート可能な秘密鍵 (-pe) を持つ自己署名 (-r) 証明書が作成されます。これは「My CA」という名前で、現在のユーザーの CA ストアに格納する必要があります。SHA-256アルゴリズム。キーは署名用です (-sky)。

秘密鍵は MyCA.pvk ファイルに保存し、証明書は MyCA.cer ファイルに保存する必要があります。

CA証明書のインポート

信頼できない CA 証明書を持っていても意味がないので、Windows 証明書ストアにインポートする必要があります。証明書 MMC スナップインを使用することもできますが、コマンド ラインから次のようにします。

certutil -user -addstore Root MyCA.cer

コード署名証明書 (SPC) の作成

makecert -pe -n "CN=My SPC" -a sha256 -cy end ^
         -sky signature ^
         -ic MyCA.cer -iv MyCA.pvk ^
         -sv MySPC.pvk MySPC.cer

上記とほぼ同じですが、発行者キーと証明書 (-ic および -iv スイッチ) を提供しています。

また、証明書とキーを PFX ファイルに変換する必要があります。

pvk2pfx -pvk MySPC.pvk -spc MySPC.cer -pfx MySPC.pfx

パスワードをご利用の場合は以下をご利用ください

pvk2pfx -pvk MySPC.pvk -spc MySPC.cer -pfx MySPC.pfx -po fess

PFX ファイルを保護する場合は -po スイッチを追加します。そうしないと、PVK2PFX はパスフレーズのない PFX ファイルを作成します。

コードの署名に証明書を使用する

signtool sign /v /f MySPC.pfx ^
              /t http://timestamp.url MyExecutable.exe

タイムスタンプが重要な理由

PFX ファイルを証明書ストアにインポートすると (PVKIMPRT または MMC スナップインを使用できます)、次のようにコードに署名できます。

signtool sign /v /n "Me" /s SPC ^
              /t http://timestamp.url MyExecutable.exe

考えられるタイムスタンプ URL は次のsigntool /tとおりです。

  • http://timestamp.verisign.com/scripts/timstamp.dll
  • http://timestamp.globalsign.com/scripts/timstamp.dll
  • http://timestamp.comodoca.com/authenticode
  • http://timestamp.digicert.com

完全な Microsoft ドキュメント

ダウンロード

.NET 開発者でない場合は、Windows SDK と .NET フレームワークのコピーが必要になります。現在のリンクは [SDK & .NET][5] にあります (makecert は `C:\Program Files\Microsoft SDKs\Windows\v7.1` にインストールされます)。状況は異なる場合があります。

MakeCert は、Visual Studio コマンド プロンプトから利用できます。Visual Studio 2015 には MakeCert があり、Windows 7 のスタート メニューの「Developer Command Prompt for VS 2015」または「VS2015 x64 Native Tools Command Prompt」から起動できます (おそらく、これらはすべて同じフォルダー内にあります)。

おすすめ記事