現在、Windowsサービスとしてインストールされている.Netアプリケーションが、WindowsServer2008で実行されているApacheTomcat7で実行されているJavaで記述された別のアプリケーションと通信する際に問題が発生しています。
.NETアプリはWindowsサービスとして実行されており、TcpListenerを使用して、ローカルマシンのパーソナルストアからのサーバー証明書(ローカルマシンの適切な証明書ストアにルート証明書と中間証明書が存在する)を使用して保護され、Javaに提示されます。次に、接続を保護するためのクライアント証明書を提供することになっているアプリケーション。
このプロセスで使用されるすべての証明書は、当社のCAから作成され、Javaアプリケーションでは、参照しているキーストアとトラストストアに証明書が追加されています。
Javaアプリケーションが.NETサービスへの接続を開こうとすると、接続が失敗します。
.Netアプリケーションでトレースをオンにしたところ、「リモートサーバーが証明書を提供しなかった」ことが原因であると報告されました。次に、Apache TomcatサービスのSSLデバッグをオンにしました。サーバー(この場合は.Net Windowsサービス)が、マシンにあるすべてのルート証明書を渡すことによってクライアントに証明書を要求する段階に達しているようです。トラストストアですが、私が追加したルート証明書はルート証明書のリストに表示されません。
ローカルマシンのトラストストアで証明書を確認できるので、次に何をすべきかわかりません。Javaアプリケーション内の認証局のリストに自分のルート証明書が表示されないようにするにはどうすればよいですか?