O que exatamente você está tentando alcançar? O servidor deve identificar o cliente pelo seu certificado (autenticação do cliente) ou o contrário (ou ambos)?
Parece que o ca.crt não é o mesmo em ambas as máquinas. Ou que os certificados intermediários estão faltando (ou seja, seu certificado de CA foi assinado por outra autoridade de certificação que o Ubuntu conhece / confia, mas o CentOS não).
Tem certeza de que o certificado (client1.crt) está assinado com o certificado da autoridade de certificação (ca.crt) e os dois arquivos (por exemplo, client1.crt e ca.crt) são iguais em ambas as máquinas? Quando você executa
openssl x509 -in client1.crt -noout -text |grep Issuer
você deve obter a mesma saída (em ambas as máquinas) do que quando faz
openssl x509 -in ca.crt -noout -text |grep Subject |head -n1
(marque o atributo "CN").
Você também pode tentar
openssl verify -CAfile ca.crt client1.crt
no CentOS (pule a parte -pupose any
).
Você verificou os registros? Nenhuma dica aí?
Se o problema persistir e você puder / quiser compartilhar as informações, a saída completa de
openssl x509 -in ca.crt -noout -text
openssl x509 -in client1.crt -noout -text
pode ser útil.
EDITAR: Você verificou esta página no site da OpenVPN? Erro TLS: a negociação da chave TLS falhou em 60 segundos (verifique sua conectividade de rede)