2 つの外部 DN にマッピングされた Apache があります。
sub1.dn.com
sub2.dn.com
どちらも同じ IP にマップされます。
それぞれに独自の SSL 証明書があります。各証明書は、CN と SAN を現状のままで一致させます (つまり、sub1 は sub1.dn.com、sub2 も同じ)。
しかし、私の Java コードがたとえばsub2.dn.comに接続しようとすると、次の ように失敗します。コムが見つかりました。
Java SSL デバッグ出力を有効にすると、奇妙なものが表示されます。Java が他の (sub1) 証明書をダウンロードして使用しているようです!!
[3]: ObjectId: 2.5.29.17 Criticality=false
SubjectAlternativeName [
DNSName: **sub1.dn.com**
]
したがって、ブラウザは満足しているようで、適切な証明書を取得しています。ただし、Java は常に sub1.dn.com 証明書を認識し、他の証明書は認識しません。そのため、sub2 が呼び出されたときに明らかに一致しません。
Javaがこれを行う理由はありますか? そして、おそらくそれを修正する方法!ありがとう