Certifique-se de incluir todos os certificados intermediários e veja se eles estão atualizados. Se test.crt
for de fato um arquivo contendo apenas /C=SE/O=AddTrust AB/OU=AddTrust External TTP Network/CN=AddTrust External CA Root
, essa é a abordagem correta. Você pode incluir a raiz também, e a maioria dos clientes aceitará essas cadeias, mas algumas irão sufocar.
Em geral, é uma prática recomendada incluir todos os certificados do seu para o último antes da raiz, no caso de um cliente não ter o último intermediário.
Também é possível que test.crt
contenha outras coisas além da cadeia correta. O OpenSSL não faz validação parcial da cadeia por padrão (em versões mais antigas, não faz nada). Ao operar neste modo, não importa o que está em / etc / ssl / certs.
Como alternativa, você pode apresentar um certificado intermediário expirado. As CAs frequentemente recertificam seus intermediários com a mesma chave; se eles fizerem isso, basta baixar o certificado de CA intermediário atualizado e substituir o certificado expirado em sua cadeia.
Finalmente, com o openssl s_client, você precisa especificar o que está sendo validado. Por exemplo, use a opção -CApath /etc/ssl/certs
ou -CAfile your_ca.crt
. Para a primeira opção, use o armazenamento confiável do sistema e, para a segunda opção, especifique o certificado da CA raiz.