30

Windows 2008R2 の IIS 7.5 でホストされている Transport Security を使用して WCF サービスを開発しています。Local フォルダーに保存されている IIS 7.5 で生成された証明書があります。

Transport Security で BasicHttpBinding または WSHttpBinding を使用すると、すべて正常に動作します。しかし、NetTcp に変更すると、例外が発生します。

 CryptographicException 'Keyset does not exist'. 

少しグーグルで調べたところ、NETSERVICE IIS アカウントに証明書の秘密鍵に対する権限がないために問題が発生する可能性があることがわかりました。

解決策は、証明書を右クリックし、[プライベート キーの管理] オプションを選択して、MMC でアクセス権を設定することです。しかし、選択メニューにはそのようなオプションはありません!!! 証明書は管理者アカウントで作成され、それを開くと、秘密鍵があると表示されます。私は何を間違っていますか?

4

7 に答える 7

27

サーバーに移動 -> [スタート] -> [ファイル名を指定して実行] をクリック -> mmc と入力 -> Enter -> [ローカル コンピューターを使用した証明書スナップイン] オプションを選択 -> [コンソール ルート] に移動 -> [証明書] -> [個人] -> [証明書] -> [証明書を選択] ->右クリック->すべてのタスクに移動->秘密鍵の管理->権限の追加

于 2014-03-19T03:48:27.753 に答える
10

最初に証明書を追加しようとしたときに、[秘密鍵の管理] オプションがありませんでした。最後に、次の2つの手順で修正しました。

  1. 管理者としてMMCを実行。[ファイル] -> [スナップインの追加または削除] -> [証明書の選択] -> [追加] ボタンをクリックします。ダイアログが開きます。このスナップインは常に の証明書を管理します: [コンピューター アカウント] を選択します。このスナップインで管理するコンピューターを選択してください: [ローカル コンピューター] を選択します。[完了] をクリックします。[OK] をクリックします。

  2. 個人用フォルダーに証明書をインポートするとき (すべてのタスク -> インポート)、.cer ファイルではなく、.pfx ファイルをインポートしていることを確認してください。

于 2016-06-16T19:36:45.857 に答える
1

もう1つ問題がある可能性があるので、それについて言及します。-pemakecert.exe を使用して証明書を作成するときの引数を除き.pfx.cer. ファイルがない場合は、 to .pfxcreate などの追加ツールを使用してpvk2pfx.exeください。

于 2016-02-09T15:40:57.203 に答える
0
  1. コマンド プロンプトを開く (管理者として実行)
  2. コマンド
    certutil -repairstore my "thumbprint" を入力して実行します (拇印を 32 文字に置き換えます)
  3. 成功すると、
    certUtil : -repairstore コマンドが正常に完了したというメッセージが表示されます。
于 2018-11-21T13:28:34.743 に答える