Amigo que você está procurando para depurar problemas de SSL com o servidor weblogic?
Erro:
FINE: ……….. Eating Exception ……….
java.security.NoSuchAlgorithmException: Algorithm ECDH not available
+ at javax.crypto.KeyAgreement.getInstance(DashoA13*..)+
Motivo:
Isso é algo como o cliente eo servidor não é capaz de negociar uma cifra comum (algoritmo) e, portanto, o handshake está falhando.
Só para dar uma breve ideia: a Cipher é inicializada pelo cliente e o Sever tem que escolher qualquer uma das Cifras apresentadas pelo Cliente para se comunicar no SSL.
Se o servidor não suportar qualquer algoritmo de codificação que seja comum ao cliente, a comunicação não acontecerá.
Portanto, se forçar o cliente (Weblogic) a usar as cifras mais fracas e o servidor não tiver restrições sobre o uso de cifras limitadas, poderemos fazer a conexão via SSL.
Resolução:
Como por padrão, o Weblogic Server usa a implementação certicom do SSL.
A exceção acima é porque a implementação do SSL não é capaz de obter uma negociação de cifra comum.
Podemos dizer ao servidor Weblogic para usar a implementação de SSL do SUN para resolver o problema.
Para usar a implementação do SUN do SSL, podemos usar as seguintes propriedades no servidor Weblogic:
- Djavax.net.ssl.keyStore
- Djavax.net.ssl.keyStoreType
- Djavax.net.ssl.keyStorePassword
- Djavax.net.ssl.trustStore
- Djavax.net.ssl.trustStoreType
- Djavax.net.ssl.trustStorePassword
- Djava.protocol.handler.pkgs = com.sun.net.ssl.internal.www.protocol
todas as propriedades acima podem ser usadas como propriedades JAVA para que a JVM WLS use esses valores em vez de usar sua própria implementação.
Também podemos usar as propriedades acima em nosso código, conforme mencionado abaixo:
System.setProperty( “javax.net.ssl.keyStore”, “***” );
System.setProperty( “javax.net.ssl.keyStoreType”, “JKS” );
System.setProperty( “javax.net.ssl.keyStorePassword”, “***” );
System.setProperty( “javax.net.ssl.trustStore”, “***” );
System.setProperty( “javax.net.ssl.trustStoreType”, “JKS” );
System.setProperty( “javax.net.ssl.trustStorePassword”, “***” );
Security.addProvider( new com.sun.net.ssl.internal.ssl.Provider() );
System.setProperty( “java.protocol.handler.pkgs”, “com.sun.net.ssl.internal.www.protocol” );
NOTA - Também para o debug de tempo de execução SSL, você pode usar o Admin Console. Para o login do servidor no Console de administração > > > > Servidores > > > MS1 > > > depurar > > > > árvore de weblogic > > > > opção ssl. Marque a opção e clique em ativar.