O que você está pedindo é bastante difícil de alcançar sem medidas razoavelmente extremas como uma VPN (uma VPN real com um adaptador de rede virtual do cliente, não um túnel ssh ou ssl de camada de aplicativo), um dispositivo funil de fluxo ascendente como SafePlug , ou um Proxy transparente TOR . Mesmo assim, o problema do certificado pode não ser endereçável, a menos que você use um proxy de camada de aplicativo com suporte a SSL. Um proxy de socks genérico provavelmente indicará que você não está conectado ao servidor ao qual o certificado pertence, porque você não está realmente.
Não há uma boa maneira de definir um proxy global na maioria dos sistemas operacionais, em grande parte porque nem todos os protocolos de rede podem ser convertidos em proxy por meio de abordagens padrão, como SOCKS, e porque tornam o sistema mais vulnerável a ataques que podem expor seu tráfego a Explorações In-The-Middle (por exemplo, um malware cria um proxy global para enviar todo o seu tráfego através de um proxy que o invasor controla). Portanto, se um aplicativo for usar um proxy, ele deverá fornecer o código de configuração e a maioria dos aplicativos (que não sejam navegadores) não.
Por favor note, meus comentários estão longe de ser uma cobertura exaustiva deste tópico imensamente complexo, e há muitas opções para preencher partes do que você está pedindo, e você pode ser capaz de encontrar a combinação certa de hacks individuais para resolver suficiente do problema para sua satisfação, mas como sua pergunta é o genérico "qualquer aplicativo cliente", simplesmente não há uma boa resposta que não envolva soluções de engenharia de sistemas como servidores / roteadores / funis upstream, ou uma verdadeira VPN.