2012-02-20 40 views
0

私は証明書によるクライアント認証を使用する自己ホストWCFサービスを実装しようとしています。残念ながら認証は失敗します。ログファイルには、クライアントが証明書を提供していないと記載されています。 firefoxでサービスにアクセスしようとすると、「Error 403-Forbidden」と表示されます。自己ホストWCFサービス+クライアント証明書の認証

次のコードは、app-configファイルによる設定を示しています。

<serviceBehaviors> 
    <behavior name="sslbehaviour"> 
     <serviceMetadata httpsGetEnabled="true" /> 
     <serviceDebug includeExceptionDetailInFaults="true"/> 
     <serviceCredentials> 
     <clientCertificate> 
      <authentication certificateValidationMode="ChainTrust" trustedStoreLocation="CurrentUser"/> 
     </clientCertificate> 
     <serviceCertificate findValue="cert-thumb-print" x509FindType="FindByThumbprint" storeLocation="CurrentUser" storeName="My"/> 
     </serviceCredentials>    
    </behavior> 
    </serviceBehaviors> 

endpoint address="https://localhost:443/service" binding="wsHttpBinding" 
     bindingConfiguration="BindingForResultPost" contract="MobD.IEndpointService" /> 

エラーメッセージ:System.ServiceModel.Channels.HttpsClientCertificateNotPresent.aspx

私は正しく私の本命を作成し、インストールしていることと思います。

私はすべてのヒントのために非常に感謝される...

種類のよろしく、 マイケル

答えて

0

あなたはあなたがしようとFirefoxを通してそれに到達したとき、あなたが403は、Firefoxがクライアント証明書を持ってもらうことを言いますインストールされている?

Httpサブコードとは何ですか? 403.17(クライアント証明書が期限切れになっています)または403.13(クライアント証明書が取り消されました)の403.16(クライアント証明書がインストールされていないか、ブラウザによって表示されていないことを意味します) 。

発信Webアクセスがないサーバーで発生した1つの問題 - サーバーが証明書失効リストを取得できないため、上記の403コードの1つを取得できますすべての証明書が拒否されます。このチェックは無効にできますが、明らかにセキュリティ上の考慮事項があります。 > -

現在のユーザー:クライアント・マシンで

:あなたは次のようにクライアント証明書を持っている必要があり

:クライアント証明書をインストールする場所には、以下の手順に

+0

私はサービスに接続しているときにFirefoxに証明書を要求してはいけませんか?サブコードをどのように取得できますか?例えば403.x - 私はちょうどメインコードを参照してください...私はすでにフィドラーを使用してみましたが、残念ながらアウトプットはあまり役に立ちませんでした。クライアント証明書およびそのルートCAは、クライアントマシンにインストールされます。 – user1168876

+0

これはWindowsボックスですか? IEとChromeのように、FirefoxはWindows証明書ストアを使用しません。独自のストアがあるので、そこにインストールする必要があります(またはIEまたはChromeのいずれかでテストする)。 IIS7以上を使用しているとすれば、詳細なエラーコードを設定する必要があると思います。セキュリティ上の理由から、一般消費者にはあまりにも多くの情報を提供するため、デフォルトでは有効になっていません。 –

+0

うん、それはWindowsだ。私はすでに証明書をfirefoxの証明書ストアに入れようとしました。 WCF-Serviceが証明書を要求しないようです。詳細エラーコードをどこで有効にできますか?それは自己ホスト型のアプリケーションです - iisのニーズはどうですか? – user1168876

0

参照してください個人フォルダには、クライアント証明書MyClientCert.pfxは、サーバー・マシンで

をインストールしている必要があります

ローカル町ne - > TrusterPeopleにMyClientCert.cerがインストールされている必要があります

セットアップが正しいことを確認してください。現在のユーザーのTrustedPeopleにクライアント証明書があることがわかります。証明書のインストール

上の明確な今ホープクライアント証明書のビットがインストールされている説明し、店からものを選択するために、ブラウザを伝えるためにどのようにこのLINKを参照してください:

注:ときに使用する方法.pfxと.cerファイル

+0

私は証明したとおりに証明書をインストールしました。同じエラーが発生します。クライアントは証明書を要求されません。動作設定は正しいですか? – user1168876

+0

あなたのケースでは、クライアントとサーバーの両方が同じマシンにありますか?そうでない場合、クライアント証明書のストアは、現行ユーザーではなくローカル・マシンでなければなりません。例: Rajesh

+0

いいえ、クライアントとサーバーは同じマシン上にありません。ログファイルを取得する可能性はありますか? – user1168876

0

WCFサービスを自己ホストしているときは、Windowsでポート権を割り当てる必要があります。

は、MSDNのこの記事を参照してください。How to: Configure a Port with an SSL Certificate

ます。また、ポートの状態を確認するためにOpenSSLを使用することができます。

関連する問題