Boa noite,
As dicas passadas pelo Elcio (curl), enviadas pelo Serpro, eram para tentar identificar a falha, mas não detalha o suficiente para os casos observados. Após várias tentativas e análises, conseguiram com sucesso com as dicas apontadas no artigo acima citado pelo Elcio.
O fato é que a maioria das falhas ocorreram com quem utiliza Java ou Oracle/OJVM. Foram observados que no IP 189.9.177.202 estava passando, com erro no 189.9.169.76 e 189.9.169.76, mas na reunião do grupo hoje, todos funcionaram.
Se aplicarem para um IP somente (não deixar o DNS resolver), podem experimentar latência, pois muitos passaram a usar o final 202. Quem tinha problema, confirmou que está funcionando com todos IPs no momento.
Como descrito no artigo, a falha ocorre porque o WAF (Web Application Firewall - servidor Serpro para o ADN) encaminha toda cadeia de certificados e no lado cliente, não há resposta e o servidor encerra conexão com o erro TLS.
Quem corrigiu em java, mudaram o JAVA KeyManage.Quando o PFX contém somente o certificado A1 (certificado pfx com tamanho 3 a 4KB), sem a cadeia completa (certificado pfx 10 a 14KB), o Java pode não encontrar uma correspondência enviada pelo servidor e o cliente não apresenta o certificado cliente durante o handshake. O servidor, aguardando o certificado A1, encerra a conexão e gera o erro.
Novamente, quando um servidor solicita autenticação mútua (mTLS), ele envia um CertificateRequest contendo uma lista de Autoridades de Certificação (ACs) aceitas, se usar JAVA com o KeyManager padrão do Java, este analisa essa lista e, se o seu certificado foi assinado por uma AC que não está explicitamente na lista enviada pelo Sepror, o Java simplesmente não envia o certificado, resultando em falha de conexão (geralmente um erro de Bad Certificate ou Handshake Failure). Substituir o KeyManager padrão por um customizado resolve isso na raiz.
Hoje apontaram que existem problemas ainda, com aplicações em PHP, por exemplo, mas quem alterou em JAVA ou usou a cadeia comple, funcionou. Não temos detalhes de quem está com problema, que linguagem ou SO está usando…
Algumas abordagens, como salvar o PFX completo (10 a 14KB de tamanho PFX) e tentar a comunicação, resolveu para muitos, mas novamente depende do ambiente do cliente.
Os servidores no Serpro estão com TLS1.2 e TLS1.3 (experimental) habilitados, mas tendo suporte para o TLS1.2, deveria funcionar no quesito protocolo, não a comunicação em si com o WAP. Inspecione se o certificado foi exportado com todas propriedade estendidas para gerar o PFX com tamanho 10 a 14KB e tentar a comunicação.
Não ficou claro quais ajustes fizeram e qual Sistema Operacional (Windows versão e/ou Linux) e se estão usando JAVA.
Informem por gentileza o ambiente e sistema para ficar claro.
At.te
Emir Toktar