Tag Archives: testes

Bysutradi

JMeter – Erro de SSL “Certificates does not conform to algorithm constraints”

O JMeter é uma ferramenta muito útil no processo de teste de software. Permite que façamos testes de stress/carga em aplicações.

Quando criamos nossos casos de teste, é comum atualmente que os testes sejam realizados em aplicações que rodam sobre SSL. Neste caso, um certificado criado corretamente faz certa diferença quando usado o JMeter.

O caso de teste pode ser criado manualmente, ou através da captura de navegação através de uma configuração de “Servidor HTTP Proxy” e um “Recording Controller” (acho que vale um artigo sobre como fazer isso).

Quando se usa este recurso, o JMeter cria alguns arquivos no diretório “bin”:

  • ApacheJMeterTemporaryRootCA.crt
  • ApacheJMeterTemporaryRootCA.usr
  • proxyserver.jks

Sendo assim, quando o desenvolvedor executa o teste localmente, não ocasionam em erros de SSL. Porém, quando o caso de teste é executado em outro equipamento, possivelmente ocorrerão erros sobre “Certificates does not conform to algorithm constraints”.

O erro de SSL “Certificates does not conform to algorithm constraints” pode ocorrer quando o certificado não está em conformidade com alguns padrões esperados pela JVM, ocasionando o erro abaixo.

javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: Certificates does not conform to algorithm constraints
at …
at java.lang.Thread.run(Unknown Source)
Caused by: java.security.cert.CertificateException: Certificates does not conform to algorithm constraints
at sun.security.ssl.AbstractTrustManagerWrapper.checkAlgorithmConstraints(Unknown Source)
at sun.security.ssl.AbstractTrustManagerWrapper.checkAdditionalTrust(Unknown Source)
at sun.security.ssl.AbstractTrustManagerWrapper.checkServerTrusted(Unknown Source)
… 24 more

​Solução

Há algumas maneiras de resolver este problema. Uma delas, talvez a mais simples/rápida, é alterar propriedades no java.security da JVM onde o JMeter está executando.

Edite o arquivo <JRE>\lib\security\java.security e alte​re as propriedades abaixo:

#jdk.certpath.disabledAlgorithms=MD2, MD5, RSA keySize < 1024
jdk.certpath.disabledAlgorithms=
#jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 768
jdk.tls.disabledAlgorithms=​

Estas configurações fazem com que a JVM aceite qualquer certificado.​

Referências:

Apache JMeter