2 つの WCF サーバーがあり、両方ともドメイン mydomain.com (架空の例、以下の IP と同じです!) に、それぞれ server1 と server2 という名前が付けられています。
どちらもパブリック IP アドレス (foo.1 および 2) を介してアクセスできますが、プライベート LAN (つまり、192.168.0.1 および 192.168.0.2) からもアクセスできます。
*.mydomain.com のワイルドカード SSL 証明書を所有しています。関連するストアに正しくインストールされている (つまり、暗号化用の Personal と認証用の Trusted Clients)。
認証目的でワイルドカード証明書を使用して、両方のサーバーをローカル ネットワーク アドレスで相互に接続したいと考えています。
C:\Windows\System32\drivers\etc\hosts ファイルを次のように更新しました。
192.168.0.1 Server1.mydomain.com
192.186.0.2 Server2.mydomain.com
これらは、Server1.mydomain.com を解決した場合に取得する IP アドレスではありません (むしろ foo.1 - 2 を取得したい)
また、IPV4 ローカル インターフェイスの接続固有の DNS サフィックスを「mydomain.com」に編集しました。
私の証明書は、Server.config ファイルで次のように参照されます (認証に関連しないすべての部分を削除しました)。
<behavior name="ServerToServerBehavior" >
<serviceCredentials>
<clientCertificate>
<authentication certificateValidationMode="PeerOrChainTrust" revocationMode="Online"/>
</clientCertificate>
<serviceCertificate x509FindType="FindByThumbprint" findValue="13a41b3456e431131cd461de"/>
</serviceCredentials>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="myServerAsClientBehaviorConfiguration">
<clientCredentials>
<clientCertificate x509FindType="FindByThumbprint" findValue="13a41b3456e431131cd461de" storeLocation="LocalMachine"/>
<serviceCertificate>
<authentication certificateValidationMode="PeerOrChainTrust" revocationMode="Online" trustedStoreLocation="LocalMachine"/>
</serviceCertificate>
</clientCredentials>
</behavior>
</endpointBehaviors>
これは、ローカルで生成された X509 証明書を使用して自分の開発用コンピューターで完全に機能しますが、本番環境では次のようになります。
Server.Connect: サーバーへの接続に失敗しました Server2: System.ServiceModel.Security.MessageSecurityException: 送信メッセージの ID チェックに失敗しました。リモート エンドポイントの予想される DNS ID は「server2.mydomain.com」でしたが、リモート エンドポイントは DNS クレーム「mydomain.com」を提供しました。これが正当なリモート エンドポイントである場合は、チャネル プロキシの作成時に EndpointAddress の Identity プロパティとして DNS ID 'mydomain.com' を明示的に指定することで問題を解決できます。
サーバーが mydomain.com だけでなく Server2.mydomain.com に応答するように試みましたが、成功しませんでした。これを行う方法に関するヒントはありますか?
エラーメッセージで提案されている解決策も試しましたが、これはまったく効果がないようです (他のユーザーも同じ問題を抱えているようで、まだ解決策を見つけていません)。これを修正する方法について何か考えはありますか?
編集:X509認証に実際に使用できることを証明書プロバイダーに確認しました。