2012-11-01 6 views
9

プロダクションWebサーバー(IIS6)でホストしようとしているWCFサービスがあります。私はウェブを立ち上げ、証明書をウェブに結びつけました。私は、サービスのURLを参照しようとすると、私は、イベントログに次のエラーが表示されます。WCFエラー: '証明書' my cert 'に鍵交換が可能な秘密鍵がない可能性があります

例外メッセージがある:それはそうです、その証明書 「CN = .mydomain、OU =セキュアリンクSSLワイルドカード、OU = IT、C = US 'は に鍵交換が可能な秘密鍵を持っていないか、秘密鍵に対するアクセス権が にない可能性があります。詳細については内部例外 を参照してください。---> System.ArgumentException: 証明書 'CN = .mydomain.com、OU =セキュアリンクSSLワイルドカード OU = IT、O = mydomain、C = US 'に鍵交換の が可能な秘密鍵がないか、秘密鍵の のアクセス権がプロセスにない可能性があります。詳細については内部例外を参照してください。 ---> System.Security.Cryptography.CryptographicException:ハンドルが無効です です。

ASP.Net 1.1,2,4がすべて「Webサービス拡張機能」で「許可」に設定されていることを確認しました。また、iisで証明書が設定されていることを確認しました。「この証明書に対応する秘密鍵があります」と表示されます。また、実行権限は「スクリプトと実行可能ファイル」に設定されています。

答えて

22

この問題が発生し、サービスが実行されていたアカウントに証明書の秘密キーにアクセスする権限がないことが判明しました。

    がCetificateマネージャを起動し
  • は、ここで私はそれを解決するために使用されるステップです。 MMCを起動し、[ファイル] - [スナップインの追加と削除]を有効にして、その後のウィザードのダイアログで "コンピュータアカウント"と "ローカルコンピュータ"を選択して "証明書"を追加します。

  • 証明書マネージャーで、関連する証明書を右クリックし、[すべてのタスク] - [秘密鍵の管理]を有効にします。
  • これにより、アクセス許可のウィンドウが表示されます。クリック追加
  • このサービスが実行されるアカウント名またはグループを追加します。
+0

秘密鍵の管理を確認したところ、ユーザーに権限がありますが、まだこのエラーが表示されていますか? – Ilaria

1

あなたの証明書が署名のために作成されたものであり、鍵交換ではないと思われます.SSL証明書では普通のことです。

makecert documentationを見ると、-skyスイッチを使用して、証明書を署名または鍵交換に使用するかどうかを指定できることがわかります。型交換を使用して自己署名証明書を作成し、例外が引き続き発生するかどうかをテストできます。証明書が有効でないという例外を回避するために、自己署名証明書をマシンの信頼されたルート証明機関フォルダに置くことを忘れないでください。

+0

使用されたmakecertは、交換パラメータで証明書を作成し、インポートしました。新しい証明書を指し、同じエラーが発生するようにweb.configを更新しました。他に何か試すことができますか? –

関連する問題