私はしばらくの間 WCF に苦労してきましたが、それを理解できないようです。SSL が有効になっている (自己署名ルート CA からの署名付き証明書を使用する) 自己ホスト型 WCF サービスを使用していますが、これまでのところ問題ありません。このサービスは企業間通信のためのものであるため、証明書が最適なソリューションであると思われました。
(私は現在 WS バインディングを使用していますが、すべてのバインディング メソッドが (私の知る限り) クライアント証明書によるトランスポート レベルのセキュリティをサポートしているため、これは開発目的のためだけです。)
サービスに関連するいくつかの構成ビット:
<bindings>
<wsHttpBinding>
<binding name="wsHttpBinding">
<security mode="Transport">
<transport clientCredentialType="Certificate"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
<!-- snip -->
<serviceCredentials>
<clientCertificate>
<authentication certificateValidationMode="PeerTrust" trustedStoreLocation="CurrentUser" />
</clientCertificate>
</serviceCredentials>
WCF サービスを実行しているユーザーの「信頼できる人」ストアにある自己署名証明書をクライアントに使用させると、失敗します。自分のルート CA によって署名された証明書を使用すると、「信頼できる人」ストアになくても機能します。
自己署名証明書を使用して「信頼できる人」ストアに保存すると、うまくいくと思っていました。しかし、追加の検証が行われているようです。何か足りないものがありますか? より良い方法はありますか?