web-dev-qa-db-ja.com

PFXのインポート時に次のキーファイルエラーをインポートできません

私はこの質問をstackoverflowで徹底的に調査し、多くの答えを見てきましたが、どれもまだ私たちのために働いていません。先日、C#WPF .net4アプリケーションの署名に使用するコード署名証明書をcomodoから購入しました。
次のURL の指示に従いました。

そして、「プロジェクトプロパティ->歌唱->アセンブリに署名」でVisual Studioに証明書をインポートしました。次に、プロジェクトをビルドしようとすると、次のエラーが表示されます。

次のキーファイルをインポートできません:comodo.pfx。キーファイルはパスワードで保護されている場合があります。これを修正するには、VS_KEY_xxxxxxxxxxxxxxxというキーコンテナ名を使用して、証明書を手動で厳密な名前のCSPに手動でインストールしてください。

インターネット上で多くの解決策を見つけ、次のことを試しました。

  • [パスワードの変更]をクリックし、3つの場所すべてで同じパスワードを使用します
  • sn -i [comodo] .pfx VS_KEY_xxxxxxxxxxxxx
  • パスワードなしのSNKファイルに変換して、.pfxの代わりにそれを使用してみました
  • Visual Studioを管理者として実行し、キーをインポートしようとしました
  • 非常にシンプルなベアボーンプロジェクトを作成し、それで署名しようとしました
  • Visual Studio 2010と2012を試しました
  • アセンブリに以下を追加してみました[Assembly:AssemblyKeyFile( "path to key file")]
  • Postbuild「C:\ Program Files(x86)\ Microsoft SDKs\Windows\v7.0A\Bin\signtool.exe」にイベントを追加しましたsign/f "$(ProjectDir)[keyfile] .pfx"/p [thepassword]/v 「$(ProjectDir)obj\Release\$(TargetFileName)」
  • .csprojファイルのセクションに追加:

  • ダウンロード http://visualstudiogallery.msdn.Microsoft.com/a83505c6-77b3-44a6-b53b-73d77cba84c8 をクリックし、エラーで「修正を適用」をクリックしました

これまでのところ成功していません。パスワードを使用してキーを正常にインポートできるため、パスワードが正しいことがわかります。また、clickonceパブリッシュでマニフェストに署名するためにこれがうまく機能することもわかっています。他の問題が発生していないことを確認するために、シルコンス署名をオフにし、アセンブリに署名しようとしています。

25
hobeau

単に「Project > Property > Signing "をクリックし、[ClickOnceマニフェストに署名する]チェックボックスをオフにします。

14
regufo

Visual Studioは下位の証明書をあまりうまく処理していないようだということを学びました。
複数のマシン(異なるOS/VSの組み合わせ)でいくつかの証明書を試したところ、同じ結果が得られました。
最終的に回避策としてこれを見つけました。

Visual Studioの問題は、証明書チェーンが気に入らないということです。これは、チェーンなしで証明書をインポート/エクスポートすることで解決できます。次の問題は certutilを使用してAT_SIGNATUREでエクスポートする で解決されます。 VSにインポートしてビルドできましたが、アセンブリに署名していないようです。

11
hobeau

同様のエラーが発生しました。 WindowsエクスプローラーのコンテキストメニューからInstall PFXを選択して解決しました。

9
Der_Meister

私が考えることができる最善の解決策は、プロジェクトに移動する->プロパティ->厳密な名前のキーファイルのドロップダウンを選択し、「新規」を選択する->キーを作成してから、上部の証明書セクションに移動する->ファイルから選択をクリックする作成した新しいキー->ビルドソリューション->公開を選択します。

3
goodfella

別の「私のために働いた」...

WindowsエクスプローラーでPFXを右クリックし、[PFXのインストール]を選択し、ウィザードでパスワードを入力しました。次に、VSのプロジェクトプロパティの[署名]で[パスワードの変更]を選択し、パスワードを再入力します。これ以前は、VSを管理者として実行するだけで機能していました。

1
Alan B

同じ問題がありました。私は、多数のコンピューターのサムドライブからアプリケーションを構築していますが、これが原因だと考えています。

「sn -i [comodo] .pfx VS_KEY_xxxxxxxxxxxxx」メソッドで成功しました。次の手順を実行しました。

  1. 「開発者コマンドプロンプト」を管理者として実行します(スタート->すべてのプログラム-> Visual Studio->ツールにあります)
  2. キーディレクトリに移動します(私にとって、これはソリューションディレクトリではなく、プロジェクトディレクトリのルートでした)
  3. 「sn -i mykey.pfx VS_KEY_xxxxxxxxxxxxx」を実行します(mykey.pfxとVS_KEY_xxxxxxxxxxxxxは両方ともビルドエラーメッセージにあります)
  4. 必要に応じてパスワードを入力してください

管理者として「Developer Command Prompt」を実行せずにこれを試したところ、「sn -i mykey.pfx VS_KEY_xxxxxxxxxxxxx」を実行するとヘルプが表示され、機能しません。秘Theは、管理者として開発プロンプトを実行したことを確認することでした。

コンテキストでは、VS Community 2013.5、Window 7 x64 Professional、およびNET Framework 4.7を使用しています

0
VoteCoffee

私のために働いて、最初に証明書をダブルクリックしてインストールします。その後、

プロジェクトのプロパティ->署名->「ClickOnceマニフェストに署名」がチェックされている場合->「ファイルから選択」をクリックして.pfxファイルを選択すると、発行先、発行元、目的などの証明書の有効な詳細がすべて表示されます.

0
Syed Abbas
  1. [プロジェクトプロパティ]-> [署名]に移動します
  2. ドロップダウンから対応する* .pfxファイルを選択してください。
  3. コード署名に使用された以前のパスワードを入力します。 (パスワード:アセンブリに署名し、自己署名証明書とコード署名を作成した人に尋ねます)
  4. (オプション)証明書を信頼済みとして自動的に追加します。管理コンソールウィンドウを使用して確認できます(MMCコマンドを実行し、証明書の追加スナップを追加して証明書を表示します)

enter image description here

0