1

クライアント証明書で保護したい WCF サービスがありますが、Azure で動作させることができません。

Amazon の標準的な Windows Server でサービスをホストすることで、Azure を方程式から外しました。サービスとクライアントの両方の証明書 (いずれも自己署名されていません) をこのサーバーのローカル マシンの「個人用」ストアにチェーン証明書を含めてインストールしましたが、すべて期待どおりに機能し、ローカル PC から呼び出され、クライアント証明書がバインディング/動作。証明書が指定されていないと機能しなかったため、この方法で確実に正しく機能しました。

次に、サービスを Azure にデプロイしました。クライアントとサーバーの証明書がポータルにアップロードされ、「Local Machine/My」に対する構成で設定され、CA とルート証明書がアップロードされ、「My」、「Trusted」、「CA」などのさまざまなストアでそれらを試しました。私が試したすべてのバリエーションで、クライアントエンドポイントアドレスのみを変更して、ローカルでまったく同じプログラムから呼び出された「HTTPリクエストはクライアント認証スキーム「匿名」で禁止されていました」を取得し続けます。

別の詳細として、証明書なしで動作させることができるので、Web サービスに問題はありませんが、クライアントとサービス間の証明書ハンドシェイクで実際に何が起こっているのかわかりません。

4

2 に答える 2

1

ようやく機能するようになり、ここにガイドを書きました:Blogspot.co.uk

私はそれを機能させるためにあまりにも奇妙なことをしていないので、以前に何が間違っていたのかわかりません。おそらく、構成のどこかに小さな欠陥があり、最終的に再起動して修正したと思います。とにかく、それは機能し、Azure で有用なセキュリティを提供します。

于 2013-10-22T16:36:34.323 に答える
0

このSO投稿に対する私の答えを参照してください-一番下の行、LocalMachine / Myで証明書を作成し、csdefファイルで昇格された特権で実行します。

<Runtime executionContext="elevated" /> 
于 2013-03-13T17:39:17.217 に答える