私はWCFといくつかのテストをやっているし、我々は現在、(簡易設定)、次のサーバーを設定している上で、サーバ証明書の検証を無効にする方法:WCF net.tcpトランスポートセキュリティ - クライアント
<netTcpBinding>
<binding name="netTcp" ... >
<security mode="Transport">
<transport clientCredentialType="None"/>
</security>
</binding>
</netTcpBinding>
...
<serviceBehaviors>
<behavior name="defaultServiceBehavior">
<serviceCredentials>
<serviceCertificate
findValue="OurCert"
storeLocation="LocalMachine"
storeName="My"
x509FindType="FindBySubjectName"/>
</serviceCredentials>
</behaviour>
</serviceBehaviors>
そして次クライアントの設定:
<endpointBehaviors>
<behavior name="NoRevNoValid">
<clientCredentials>
<serviceCertificate>
<authentication certificateValidationMode="None"
revocationMode="NoCheck"/>
</serviceCertificate>
</clientCredentials>
</behavior>
</endpointBehaviors>
ので、アイデアは、サーバ証明書は、データを暗号化するために使用されていることですが、クライアントが証明書を検証する気にしないこと(クライアントはとにかく証明書のCAを持っていません。 )。
ただし、この構成では、クライアントが証明書の検証を停止することはありません。それでも、信頼の連鎖を歩み、失効リストを探します。
このリンクを発見しましたstating that the certificateValidationMode attribute does NOT apply to net.tcp bindings
私はServicePointManager.ServerCertificateValidationCallbackイベントを処理する見てきましたが、やはり唯一のHTTPベースのバインディングに適用されることが表示されます。
おそらくnet.tcpバインディングを使用すると、トランスポートセキュリティがアプリケーションのスコープ外で処理されるため、これらは両方ともですか?
証明書を検証しないように強制する他の方法はありますか?
はあなたが自己署名証明書を使用していますか? – Yuan
実際には、ドメインコントローラの証明機関で作成されたテスト証明書であるため、CRLおよびCAエントリにはそのコントローラを指し示すURLがありましたが、URLは実際にはもう解決しませんでした。 – OffHeGoes