Problema al verificar el certificado del servidor en checkServerTrusted

Me estoy refiriendoValidar el certificado X.509 contra CA en Java esta publicación.

Mi implementación decheckServerTrusted parece:

@Override
            public void checkServerTrusted(X509Certificate[] certs, String authType) throws  CertificateException{
                 InputStream inStream;
                try {
                        inStream = new FileInputStream("E:\\Desktop\\cert\\domain.crt");
                        CertificateFactory cf = CertificateFactory.getInstance("X.509");
                        X509Certificate Mycert = (X509Certificate)cf.generateCertificate(inStream);
                        inStream.close();      

                        if (certs == null || certs.length == 0 || authType == null
                                || authType.length() == 0) {
                            throw new IllegalArgumentException("null or zero-length parameter");
                        }

                         for (X509Certificate cert : certs) {
                             cert.verify(Mycert.getPublicKey());
                         }


                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    throw new CertificateException("error in validating certificate" , e);
                }

            }

El archivo domain.crt se exporta desde el navegador después de abrir el sitio web. la ruta del certificado parece.

Si abro este archivo en el bloc de notas solo unoBEGIN CERTIFICATE yEND CERTIFICATE es así que no es una cadena de certificados.

Si depuro código entonces, enfor loop @ LOCcert.verify(Mycert.getPublicKey()); en el primer certificado cert [0] obtuve una excepción comojava.security.SignatureException: Signature does not match.

¿Dónde estoy haciendo mal?

Respuestas a la pregunta(1)

Su respuesta a la pregunta