A resposta simples para isso é que praticamente cada aplicativo lidará com isso de maneira diferente.
O OpenSSL e o GNUTLS (as bibliotecas de processamento de certificados mais usadas para lidar com certificados assinados) se comportam diferentemente no tratamento de certificados que também complicam o problema. Além disso, os sistemas operacionais utilizam mecanismos diferentes para utilizar a "CA raiz" usada pela maioria dos sites.
Isso de lado, dando Debian como um exemplo. Instale o pacote ca-certificates
:
apt-get install ca-certificates
Você copia a metade pública de seu certificado de CA não confiável (aquele que você usa para assinar seu CSR) no diretório de certificado de CA (como root):
cp cacert.pem /usr/share/ca-certificates
E consiga reconstruir o diretório com seu certificado incluído, como root:
dpkg-reconfigure ca-certificates
e selecione a opção ask
, vá até o seu certificado, marque-o para inclusão e selecione ok.
A maioria dos navegadores usa seu próprio banco de dados de CA, e assim ferramentas como certutil
devem ser usadas para modificar seu conteúdo (no Debian que é fornecido pelo pacote libnss3-tools
). Por exemplo, com o Chrome, você executa algo nos seguintes termos:
certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n "My Homemade CA" -i /path/to/CA/cert.file
O Firefox permitirá que você navegue até o certificado em disco, reconheça um arquivo de certificado e permita que você o importe para a lista da CA raiz.
A maioria dos outros comandos, como curl
, usa as opções de linha de comando que você pode usar para apontar para sua autoridade de certificação,
curl --cacert /path/to/CA/cert.file https://...
ou elimine completamente a validação SSL
curl --insecure https://...
O restante precisará de uma investigação individual se o truque ca-certificates
like não o classificar para esse aplicativo em particular.