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.
ou o próprio Web Service do pessoal que te passou não tem essa funcionalidade para vc fechar a
sua conexão com o Web Service deles?
Espero ter ajudado.
abraços
Priscilla_B_Pereira
O Web Service deles não tem essa funcionalidade para que eu possa fechar a minha conexão com o Web deles.
Eu não sei o que pode ser isso!
O
oyama
Você setou a propertie javax.net.ssl.trustStore com um arquivo contendo o certificado do servidor?
Se sim, verifique se o arquivo está “integro”:
keytool-v-list-keystore<arquivo>
Verifique também o arquivo $JAVA_HOME/jre/lib/security/cacerts está integro.
Priscilla_B_Pereira
Os arquivos TrustStore e KeyStore estão integros.
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
Não consegui entender porque hora funciona, hora não, se os arquivos estivessem com algum dano nunca poderia funcionar.
O
oyama
Frase típica: “Estranho!!!”
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.
Priscilla_B_Pereira
Na verdade é um web service mas com métodos diferentes. O certificado cliente e servidor são iguais e são válidos, assinados por uma CA oficial.
Só não posso postar o certificado, por questões de segurança, pois pertence ao nosso cliente.
Priscilla_B_Pereira
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).
O
oyama
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?
Priscilla_B_Pereira
Servidor de aplicação: Apache TomCat 5.5.15
JVM 1.5.0_06-b05
Certificado:
algoritmo: sha1RSA
Chave: RSA(2048)
validade: sábado, 14 de fevereiro de 2009 15:58:00
Emissor: 0 = TCSTAUTH OU = Organizational CA
Priscilla_B_Pereira
Chave: RSA 2048
O
oyama
E a stacktrace?
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.
Priscilla_B_Pereira
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.
Muito obrigada pela ajuda!
Priscilla_B_Pereira
Olá,
No momento, nos dois servidores a aplicação está funcionando perfeitamente.
Vou executar testes periodicamente nos dois servidores durante esta semana para ver se ocorre novamente o erro.
Estou com este mesmo problema no desenvolvimento local aqui…
O que pode ser?
jeroqueiroz
Consegui resolver o problema…
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.