ca md too weak: reemitir o certificado ou baixar o nível?
O erro nomeia um digest de assinatura que o cliente agora rejeita, não uma palavra-passe fraca. Decida entre reemitir a cadeia, perguntar ao emissor ou baixar a política.
OpenVPN cliente que funcionava no mês passado agora falha ao arrancar com ca md too weak, e o perfil em disco é byte a byte o mesmo que funcionava. A mensagem diz respeito à assinatura no certificado de uma autoridade certificadora, não à cifra de dados, ao digest auth ou à palavra-passe da conta. Três condições decidem se a correção é material de identidade novo, uma cadeia nova ou uma alteração de política deliberada. Trate-as por ordem, e evita o resultado habitual em que o túnel volta ao enfraquecer todas as ligações TLS no anfitrião.
O que o erro nomeia de facto
O OpenSSL levanta este erro de verificação enquanto constrói uma cadeia, quando o certificado que atua como CA carrega um digest de assinatura que o nível de segurança da biblioteca já não aceita. O MD5 é recusado no nível predefinido, e o SHA-1 é recusado assim que o nível é elevado. O digest no certificado folha importa aqui menos do que o digest no emissor que o assina. A mesma política pode recusar uma raiz que era totalmente comum no dia em que foi emitida.
É por isso que editar auth ou data-ciphers não faz nada para esta falha. Essas definições governam como os pacotes são protegidos depois do handshake, enquanto o objeto recusado é um documento de identidade examinado antes de existir um túnel. Um certificado pode estar confortavelmente dentro da sua janela de validade e ainda assim carregar uma assinatura que a biblioteca não aceitará.
Mantenha as verificações separadas na cabeça e o erro deixa de parecer misterioso. Datas de validade, utilização da chave e digest de assinatura são testes independentes, e exatamente um deles acabou de falhar.
Condição um: o objeto recusado é a raiz?
Imprima cada certificado do perfil e leia os campos subject e issuer. Uma raiz autoassinada mostra o mesmo valor em ambos, e o seu algoritmo de assinatura é aquele em que toda a cadeia assenta. Quando o digest fraco está ali, cada folha abaixo herda o problema. Escreva o algoritmo ao lado do subject para que a comparação posterior seja mecânica e não de memória.
Os ficheiros CA reunidos contêm muitas vezes vários blocos, por isso identifique o bloco que é realmente carregado em vez de assumir que o primeiro é o culpado. O comando openssl x509 -in ca.pem -noout -subject -issuer -text descreve um certificado de cada vez, o que significa dividir o conjunto primeiro se contiver mais. Compare o algoritmo de assinatura impresso com o digest que esperaria da época em que a raiz foi criada.
Uma folha assinada com SHA-256 sob uma raiz fraca ainda falha, porque a verificação da cadeia percorre até ao topo. É essa ordem que torna a condição seguinte importante.
Condição dois: controla o emissor?
Se a raiz pertence à sua organização, a correção duradoura é uma raiz nova com um digest moderno mais folhas reemitidas, entregues como uma única atualização de perfil. Isso custa uma janela de manutenção e um plano para dispositivos que não conseguem receber a atualização no mesmo dia.
Se um terceiro emitiu a cadeia, a correção é um pedido a esse operador, e a única ação local útil é deixar de depender do material antigo. Editar o texto PEM ou voltar a guardar o ficheiro não muda nada do que a assinatura cobre.
Um caso intermédio merece nome: uma raiz interna anterior às predefinições atuais mas que ainda assina material em que outros sistemas confiam. Substituí-la significa auditar todos os consumidores, incluindo equipamentos que fixam o certificado antigo por impressão digital. Conte esses consumidores antes de agendar a mudança, porque uma troca de raiz que falhe um troca um erro de arranque por uma indisponibilidade.
Condição três: o que baixar o nível também aceita
Baixar o nível de segurança, ou escolher o perfil de certificados legacy do OpenVPN, faz o cliente aceitar de novo o digest antigo. Também relaxa outras verificações na mesma biblioteca, para todas as ligações que esse processo fizer.
Isso pode ser defensável num laboratório, ou como ponte curta enquanto se prepara material de substituição, desde que a exceção fique limitada a um perfil e tenha data de fim. Como definição permanente num anfitrião partilhado, alarga em silêncio aquilo em que cada cliente TLS ali confiará.
Escreva a exceção com um responsável e um passo de remoção. Uma alteração de nível não documentada é indistinguível de um erro seis meses depois, e o próximo engenheiro não saberá que alguma vez foi uma decisão.
A decisão, escrita como regra
Substitua a cadeia quando controla o emissor e consegue enumerar os seus consumidores. Escale para o emissor quando não controla. Baixe o nível apenas como exceção datada e delimitada, com a substituição já agendada. Qualquer outra coisa deixa o mesmo certificado no lugar e move o risco para um sítio menos visível.
Depois volte a testar o perfil a partir de um cliente limpo, confirme que o handshake se completa, e guarde o texto exato da recusa se continuar a falhar. Uma mensagem de erro precisa é a coisa mais barata que pode entregar a quem for dono da camada seguinte.