(Publicado en ServerFault en lugar de StackOverflow porque siento que se refiere a la configuración del sistema operativo más que al código de programación).
Actualmente soy responsable de mantener un sistema que se conecta a un servicio web de terceros. Este servicio web requiere certificados de autenticación del cliente, lo cual es bastante justo, pero el servicio web en sí está asegurado con un certificado autofirmado creado por un certificado de autoridad de certificación raíz creado por uno mismo, la misma raíz que crea los certificados de autenticación del cliente.
Sería suficiente simplemente agregar el certificado de servicio actual a la lista de confianza conocida e ignorar el certificado de autoridad de creación propia, desafortunadamente el certificado de servicio cambia regularmente, por lo que el certificado de autoridad debe ser confiable para garantizar que la aplicación no se rompa cuando el Se renueva el certificado de servicio.
Sin embargo, (personalmente) no confío en el certificado de CA en base a mi experiencia con la compañía que ejecuta el servicio web, no me sorprendería si se filtrara a la web, y preocupantemente el certificado de CA no tiene restricciones de uso de claves impuestas. (aunque los ataques MITM externos son una posibilidad, aunque remota, estoy más preocupado por un certificado filtrado utilizado para la firma de código, por ejemplo).
¿Es posible que le diga a mi computadora (actualmente una caja de servidor, pero en el futuro cajas de clientes de escritorio normales) que confíe en una CA pero solo para un conjunto dado de usos clave y un pequeño conjunto de posibles nombres de sujeto (nombres de dominio )?
El servidor es actualmente Windows Server 2012 R2, pero podría estar ejecutándose en una caja de Linux, aunque las máquinas de escritorio son todas cajas de Windows.