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-certificatespacote:
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 askopçã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 certutilessas devem ser usadas para modificar seu conteúdo (no Debian, fornecido pelo libnss3-toolspacote). 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 curlopçõ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-certificatestruque semelhante não o classificar para essa aplicação específica.