(Publicado no ServerFault em vez do StackOverflow, porque acho que se trata mais da configuração do SO do que do código de programação).
Atualmente, sou responsável por manter um sistema conectado a um serviço da web de terceiros. Esse serviço da web requer certificados de autenticação de cliente, o que é justo o suficiente, mas o próprio serviço da web é protegido por um certificado autoassinado criado por um certificado de autoridade de certificação raiz auto-criado - a mesma raiz que cria os certificados de autenticação do cliente.
Seria suficiente apenas adicionar o certificado de serviço atual à lista confiável conhecida e ignorar o certificado de autoridade criado por si próprio. Infelizmente, o certificado de serviço muda regularmente, portanto, o certificado de autoridade deve ser confiável para garantir que o aplicativo não seja interrompido quando o certificado de serviço é renovado.
No entanto, eu (pessoalmente) não confio no certificado da CA com base na minha experiência com a empresa que administra o serviço da web - não me surpreenderia se vazasse para a web - e, preocupantemente, o certificado da CA não possui restrições de uso de chaves (embora ataques externos ao MITM sejam uma possibilidade, embora remota, estou mais preocupado com um certificado vazado usado para assinatura de código, por exemplo).
É possível dizer ao meu computador (atualmente uma caixa de servidor, mas em futuras caixas de clientes comuns de desktop) confiar em uma autoridade de certificação, mas apenas para um determinado conjunto de usos de chave e um pequeno conjunto de possíveis nomes de assunto (nomes de domínio )?
O servidor atualmente é o Windows Server 2012 R2, mas pode estar em execução em uma caixa Linux - embora as máquinas da área de trabalho sejam todas caixas Windows.