A resposta simples para isso é que praticamente todos os aplicativos lidam 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 de maneira diferente no tratamento de certificados, o que também complica o problema. Os sistemas operacionais também utilizam mecanismos diferentes para utilizar a "CA raiz" usada pela maioria dos sites.
Isso de lado, dando o Debian como um exemplo. Instale o ca-certificates
pacote:
apt-get install ca-certificates
Em seguida, você copia a metade pública do seu certificado de CA não confiável (aquele usado para assinar seu CSR) no diretório de certificados da CA (como raiz):
cp cacert.pem /usr/share/ca-certificates
E faça com que ele reconstrua o diretório com seu certificado incluído, execute como root:
dpkg-reconfigure ca-certificates
e selecione a ask
opção, 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 autoridade de certificação e, portanto, ferramentas como certutil
essas devem ser usadas para modificar seu conteúdo (no Debian, fornecido pelo libnss3-tools
pacote). Por exemplo, com o Chrome, você executa algo como:
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 no disco, reconheça um arquivo de certificado e depois importe-o para a lista de CA raiz.
A maioria dos outros comandos, como as curl
opções de linha de comando, você pode usar para apontar para sua CA,
curl --cacert /path/to/CA/cert.file https://...
ou abandone a validação SSL completamente
curl --insecure https://...
O restante precisará de investigação individual se o ca-certificates
truque semelhante não o classificar para essa aplicação específica.