9

これを邪魔にならないようにしましょう...私:

  • Visual Studio 2012 を使用する

  • VB.NETアプリケーションの開発- ほとんどが .NET フレームワーク 3.5、いくつかは 2.0。

  • 開発には Windows 7 を使用します (ユーザーは Windows 7 も使用しています。少数の内部ユーザー (40 未満) がいます)。

また、私はこれが初めてで、このプロセスを完全には理解していないと述べます。暗号化/ハッシュ/キーなどの基本的な概念は理解して.cerますが、ファイルではなくファイルが必要な理由はわかりません.pfx

さて...

証明書を使用してマニフェストに署名するアプリケーションがあります。最近、基本的に Visual Studio 2010 をスキップして、Visual Studio 2008 から Visual Studio 2012 にアップグレードしました。そのプロセスのどこかで、証明書が無効になっているか破損しています。

makecert.exe提案された解決策: 「前回と同じように」新しいものを作成します。私たちが証明書を必要とするのは、私たち自身の少数のユーザーのセットと、「この発行元を信頼しますか?」という小さな利便性だけである場合、証明書にお金を払う意味はありません。メッセージ(だと思いますか?)。

公開しようとすると、正確なエラーは次のとおりです。

プロジェクトのビルドに失敗したため公開できません。

署名中にエラーが発生しました: bin\Release\app.publish\setup.exe に署名できませんでした。SignTool エラー: 署名者の証明書は署名に対して有効ではありません。SignTool エラー: 署名中にエラーが発生しました: bin\Release\app.publish\setup.exe

現在、 .NET Framework 2.0 を使用してアプリケーションで証明書をサポートするという記事には、次のように書かれています。

デスクトップ アプリケーションの場合、通常はユーザー ストアに証明書をインストールします。

したがって、(証明書スナップインを使用したMMC経由で) ユーザー ストアを見ると、次のように表示されます。

ここに画像の説明を入力してください

赤い線があるところは、OLD/INVALID 証明書です。もう 1 つはまだ有効期限が切れておらず、私のユーザー名が記載されています (2013-06-20)。

ストアから選択すると、次のように表示されます。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

興味がある場合は、これらのいずれかを配置する他の直感的な場所は次のようになります。

ここに画像の説明を入力してください

では、古い/悪いものがある場所に別のものを追加するにはどうすればよいですか?

これが私が試したことです:

これらの指示に従って、実行しました

makecert -n "CN=TempCA" -r -sv TempCA.pvk TempCA.cer

今、私は.pvkファイルとファイルを持ってい.cerます。次に、Pvk2Pfx (Windows ドライバー)の指示に従って実行しました

pvk2pfx.exe -pvk TempCA.pvk -spc TempCA.cer -pfx TempCA.pfx

今、私は.pfxファイルを持っています... (これは私が必要とするものですか?)、しかし、MMC を使用して証明書ストアにインポートしようとすると、使用したパスワードは、たとえコピーして貼り付けたとしても、間違っていると思われます.(インポート プログラムのバグのように聞こえます...これは再現できます。)

別のルートを試してみると、.cerファイルをインポートした後、Visual Studio の [ストアから選択] ウィンドウに表示されないため、役に立ちません。

私はこれに 1 日を費やし、あきらめる準備ができていますが、できません。私は何をする必要がありますか?

4

2 に答える 2

7

Makecert を使用して開発用の証明書を作成するという記事は、約 90% の方法で役に立ちました...

残りは、私が2つのことのいずれかを行うことができることを理解していました(これらのオプションは両方とも、証明書が「信頼されたルート認証局」のような「信頼されたルート」エリアにある必要があるか、そこにあるものによって署名されている必要があります):

  1. Visual Studio では、[署名] タブの下で、[ファイルから選択] を使用して.cerファイルを使用することができました。
  2. ファイルを「個人用」フォルダーに入れると.cer、「ストアから選択」ボタンのオプションとして表示されます (コンピューターまたは Visual Studio を再起動する必要がある場合があります)。
于 2012-11-29T19:38:30.257 に答える
2

Watki02 による回答は非常に役に立ちますが、いくつかの詳細が欠けています。また、そのブログ投稿の重要な情報もここに投稿する必要があります。そう...

  1. 独自のルート認証局証明書を作成します。

    CD \path\to\whereyouwant

    makecert -n "CN=Make Up A Name" -a sha1 -r -sv MakeUpANameCertificateAuthority.pvk MakeUpANameCertificateAuthority.cer -ss MakeUpANameCertificateAuthority -sr localMachine

  2. パスワード プロンプト パスワードを作成してから、パスワードを送信するように求められます。両方のプロンプトに同じパスワードを使用しました

  3. ユーザー証明書

    makecert -pe -n "CN=CN=Make Up A Name User" -ss MY -a sha1 -iv MakeUpANameCertificateAuthority.pvk -ic MakeUpANameCertificateAuthority.cer -sv MakeUpAName.pvk MakeUpAName.cer

  4. パスワードプロンプトが再度表示される 上記と同じパスワードを再度使用しました

交換用のポータブル ファイルを作成する

pvk2pfx -pvk "MakeUpAName.pvk" -spc "MakeUpAName.cer" -pfx "MakeUpAName.pfx" -pi SamePasswordAgain
  1. プライベート クライアントにファイルを送信する

    「MakeUpAName.pfx」

  2. 証明書をインストールする

c:> MMC.EXE

MENU FILE -> Snapinの追加/削除

証明書 -> 追加 -> コンピューター アカウント -> 完了 -> OK

MENU アクション -> すべてのタスク -> インポート

ウィザードを進める

*.pfx 形式を選択

ファイルを選ぶ

デフォルトのオプションで続行

于 2016-12-12T13:06:11.890 に答える