Problema na verificação do certificado do servidor em checkServerTrusted

Estou me referindoValidar certificado X.509 em relação à CA em Java esta postagem.

Minha implementação 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);
                }

            }

O arquivo domain.crt é exportado do navegador após a abertura do site. caminho do certificado.

Se eu abrir este arquivo no bloco de notas, apenas umBEGIN CERTIFICATE eEND CERTIFICATE é a sua, portanto, não é uma cadeia de certificados.

Se eu depurar código, emfor loop @ LOCcert.verify(Mycert.getPublicKey()); no primeiro certificado cert [0] eu recebi exceção comojava.security.SignatureException: Signature does not match.

Onde estou fazendo errado?

questionAnswers(1)

yourAnswerToTheQuestion