0

私はグーグルで検索しても結果が出ないという奇妙な問題を抱えています。Windows Server 2008 R2 で wcf サービス アプリケーションの証明書をセットアップしようとしています。証明書を localmachine のパーソナル ストアにインポートしましたが、恐ろしい結果になりました。

"Keyset does not exist...the certificate ... must have a private key that is capable of key exchange. The process must have access rights for the private keys."

mmc の [秘密キーの管理] オプションを使用して、秘密キーのアクセス許可を設定しようとしました。また、C:\programdata\microsoft\crypto\rsa\machinekeys にある秘密キー ファイルのアクセス許可を手動で設定しようとしました。 . findprivatekeys ツールを使用して正しいファイルを変更していることを確認し、WSE X.509 証明書ツールも使用してみました。正気を保つために、ファイルの「全員」に読み取りアクセスを許可しましたが、まだ機能しません。

私がここに欠けているものはありますか?私は IIS7 を使用しており、通常は IIS_IUSRS グループのファイルへのアクセスを許可しています。VM での他のテストでは、これらすべてが正常に機能しました。他のマシンでもまったく同じ証明書を使用しましたが、それらはそこで機能します...

道に迷ってしまいました...「秘密鍵の管理」ダイアログでアクセス許可を編集すると、ファイルのアクセス許可を見てもセキュリティ設定の変更が反映されないことに気付きました。逆。ファイルは他にどこにありますか?とにかく、両方の場所から最大の許可を与えましたが、運がありませんでした。

4

1 に答える 1

0

ここで何が起こっているのかわかりませんが、テストの過程で、MachineKeys フォルダーのアクセス許可が大幅に変更されたので、管理者グループを除くそこにリストされているすべてのユーザーのアクセス許可を削除し、問題の証明書を (mmc を介して) 削除し、再インストールしました。 -再度インポートしました。次に、IIS_IUSRS の読み取りと実行のアクセス許可をその秘密キーのみに追加したところ、元に戻ったようです。

関連するメモとして、私は aspnet_regiis -pi を使用して別のもののキー ペアをインポートしていましたが、「安全なハンドルが閉じられました」というエラーで失敗していました。MachineKeysフォルダーのアクセス許可を修正すると、それも修正されました...

于 2012-12-11T19:11:23.260 に答える