Das Überprüfen eines Zertifikats in Java löst eine Ausnahme aus - es kann kein gültiger Zertifikatpfad zum angeforderten Ziel gefunden werden

Ich besitze eine Web-App, bei der ein Client sein Zertifikat senden muss und der Server das Zertifikat validieren muss (z. B. prüfen, ob der Aussteller ein gültiger Aussteller ist und im Truststore des Servers vorhanden ist). Hier ist der Code:

<code>FileInputStream fin=new FileInputStream("C:/trustedca");
    KeyStore anchors = KeyStore.getInstance("JKS","SUN");
    anchors.load(fin, "server".toCharArray());
    X509CertSelector target = new X509CertSelector();
    FileInputStream fin1=new FileInputStream("C:/client.crt");
    CertificateFactory cf=CertificateFactory.getInstance("X.509");
    X509Certificate cert=null;
    while (fin1.available() > 0) 
    {
     System.out.println("in while---------");
     cert =(X509Certificate) cf.generateCertificate(fin1);
    }
    target.setCertificate(cert);
    PKIXBuilderParameters params = new PKIXBuilderParameters(anchors, target);

    CertPathBuilder builder = (CertPathBuilder) CertPathBuilder.getInstance("PKIX").build(params);
    PKIXCertPathBuilderResult r = (PKIXCertPathBuilderResult) builder.build((CertPathParameters)params);<br>
</code>

Aber ich bekomme eine Ausnahme:

<code>sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid
 certification path to requested target<br>
</code>

HINWEIS :
Hier ist das vom Client gesendete Zertifikat client.crt und das zum Signieren des client.crt-Zertifikats verwendete Zertifikat ist das ca.crt, das im Keystore "trustedca" vorhanden ist. Warum gibt es dann diese Ausnahme?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage