Estou com o erro abaixo e não sei o que pode ser. Alguém pode ajudar?
nested exception is: javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
Estou consumindo um web service com conexão segura (https), tenho o certificado válido e o CA (instituições certificadoras). A aplicação encontra o certificado e o arquivo, mas hora funciona ok, hora apresenta o erro acima sem ocorrer nenhuma alteração.
A aplicação que faz o consumo deste web service, parte dela é desenvolvida no NetBeans e a outra parte a partir do Genexus, o código abaixo foi escrito em Genexus. Observe na linha 3 do código, esses parâmetros são:
&PathFinalTrustStore = diretório e nome do arquivo TrustStore.jks (CA)
&tspwd = Senha de acesso no TrustStore
&PathFinalKeyStore = diretório e nome do arquivo KeyStore.jks
&kspwd = Senha de acesso no KeyStore.jks
Você está acessando um único Web Service? No servidor está ativado a verificação de autencidade do client? O seu certificado e o certificado do servidor são certificados “autenticos” (assinados por uma CA oficial)?
Poste o certificado do servidor que você está acessando e o seu certificado para poder dar uma olhada.
Quando ocorre este erro, a requisição nem chega no dominio do web service. Solicitei ao cliente que fizesse um rastreamento das requisições, e segundo o cliente não chegamos pingar no firewall dele, ou seja, este erro ocorre aqui (na máquina cliente).
Poste a statcktrace completa para dar uma olhada.
Poste dados tecnicos sobre o certificado: algoritmo de assinatura, tamanho da chave, etc.
Qual versão de JVM você está usando? Está rodando em algum servidor de aplicação?
Tipicamente este erro é por não conseguir ler o arquivo de “trustCert” configurado. Como você citou que as vezes funciona e algumas vezes funciona, talvez fosse interessante investigar se não é problema de leitura do arquivo. O arquivo está local ou é acessado através de algum mecanismo de diretório remoto? Não está havendo problema de leitura de disco onde está o arquivo?
Chute: tente mudar o arquivo de lugar e veja se o erro persiste.
Eu desconfiei que poderia ser isso (não conseguir ler o arquivo de “trustCert” configurado), mas faço todo o controle de verificação de acesso ao arquivo. Este arquivo encontra-se sempre no servidor de aplicação, inicialmente este arquivo encontra-se no mesmo diretório das minhas classes, dentro do contexto do tomcat. Fiz uma alteração, retirei do contexto do tomcat e coloquei no diretorio raiz (root), mas não apresentou diferença alguma.
Algo que ainda não havia pensado é se esta ocorrendo erro de leitura no disco, vou solicitar ao pessoal de suporte que prepare um novo ambiente e vamos fazer teste.
Por algum motivo apesar de não apresentar erro na adição do certificado, creio que o mesmo não estava sendo localizado. Refiz todo o processo de instalação e exportação do certificado até a inclusão…Após todo o processo refeito funcionou…
Agora estou com problema de formatação de XML, porém creio que seja porque estava usando a versão 1.10, vou fazer as mudanças para a versão 2.00 e posto o resultado.