Estou trabalhando em um problema em que a exceção ocorre apenas em nosso ambiente de produção. Não tenho acesso a esses ambientes nem sei o que essa exceção significa. Observando a descrição do erro, não consigo entender a causa.
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
Alguém poderia me aconselhar sobre como abordar esse tipo de problema?
exceptions
C4CodeE4Exe
fonte
fonte
Respostas:
Em geral, melhor registro de depuração. Descubra o que você quer saber, adicione-o ao código e coloque-o nos logs para que você possa trabalhar com isso. Capturar mais detalhes do ambiente na época também ajuda - qual solicitação, quando, etc.
Especificamente, eu procuraria um padrão comum nos clientes que atingissem esse objetivo - e se você encontrasse um otimizado -, mas capturaria o tráfego da camada TCP.
Observar as mensagens SSL trocadas deve ter uma idéia do que está errado no protocolo ou, pelo menos, quais são as propriedades comuns da solicitação. Depois de ter isso, deve estar mais perto de ser depurado.
Como guia, eu acho que isso vem de uma das três coisas:
fonte
Eu recomendaria usar uma estratégia de log com um nível máximo configurável de log. Um utilitário como o log4j ( http://logging.apache.org/log4j/ , http://en.wikipedia.org/wiki/Log4j ) pode fazer o trabalho.
O nível de log configurável (ou verbosidade) é importante para encontrar o motivo de um erro, possivelmente sem ter que reimplementar seu software.
Se essa estratégia não for suficiente para encontrar o erro, tente descobrir como produzir / ler os logs produzidos pelos aplicativos com os quais o seu está se comunicando.
Você também pode implementar algum mecanismo para obter automaticamente mais informações sobre erros por email.
De maneira mais geral, você pode ler alguns artigos sobre instrumentação, que é um tópico maior que inclui criação de log e rastreio.
fonte