0

証明書を使用して WCF クライアントとサーバーを認証する必要がある非常に特殊な構成があります。この証明書はクライアントおよびサーバー アプリケーションでのみ使用され、インスタンスごとに 1 つの専用証明書を生成することはできないため、自己署名がその方法でした。したがって、ホール接続が正常に機能しており、サーバーを指すチャネルにクライアント証明書を添付でき、サーバーサービスも独自の証明書を添付しています。許可されたクライアントだけが私のサービスを呼び出すことができるようにしたいので、サーバー側で検証を行う必要があります。メソッド Validate(X509Certificate2 certificate) をオーバーライドするカスタム バリデーター (X509CertificateValidator) を使用しています。これまでのところ、すべて問題ありません。接続が確立されたときにメソッドが呼び出され、すべてのプロパティを含むクライアントの証明書を受け取ります。質問は次のとおりです。

-クライアントを検証するために、受け取った証明書がオリジナルのものであることをどのように確認できますか??

現在、HTTPSを使用してWebサイトからエクスポートされた本物の(偽の)証明書でテストしています(ブラウザに表示され、ローカルにインストールされた証明書をエクスポートします)。もちろん、私は秘密鍵を持っていませんが、この証明書をクライアントの接続に添付することができ、サーバー側でうまく受信されます。この証明書内のすべてのプロパティは元のものと同じですが、そうではありません!! では、サーバー側で受け取った証明書が単なるコピーではなく元のものであることをどのように検証できますか?? 証明書の秘密鍵を使用して呼び出しに署名を入れる方法はありますか??

どうもありがとう

4

1 に答える 1

0

検証機能をオーバーライドすると、基本的には自分でできます。これは基本的に、証明書セキュリティ システム全体を回避しています。証明書をルート レベルのサーバーで信頼できるようにする必要があります。それができない場合は、次のオプションがあります: 1. ワイルドカード証明書を使用する (すべてのサーバーが同じドメインにある場合) 2. 独自の証明機関を作成する

于 2012-10-11T02:59:02.427 に答える