PKIX パス構築の例外を無視する必要があります
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException:
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderExc
ption: unable to find valid certification path to requested target
X509TrustManager
where I always return true
fromを実装する独自のクラスを作成することで、これを行う方法を知っていますisServerTrusted
。
ただし、すべてのサーバーとすべてのクライアントを信頼したくありません。
- 現在行われているように、すべてのデフォルトの検証をクライアントに対して行う必要があります。
- サーバーの場合、特定の1つの証明書についてのみサーバー証明書の検証を無視したいが、現在行われているように検証したい(たとえば、cacertsストアを使用するため)。
どうすればこのようなことを達成できますか。つまり、検証の一部を、置き換える前の X509TrustFactory オブジェクトに渡します。
つまり、これが私がやりたいことです
public boolean isServerTrusted(X509Certificate[] chain)
{
if(chain[0].getIssuerDN().getName().equals("MyTrustedServer") && chain[0].getSubjectDN().getName().equals("MyTrustedServer"))
return true;
// else I want to do whatever verification is normally done
}
isClientTrusted
また、既存の検証を妨げたくありません。
これどうやってするの?