minha empresa desenvolveu um aplicativo baseado em .net (com base no SChannel) destinado a executar a autenticação mútua do TLS1.2 entre duas instâncias do mesmo SW, uma agindo como cliente e a outra como servidor na sessão de autenticação mútua do TLS1.2 .
As instâncias de SW de cliente e servidor foram implantadas em diferentes servidores do sistema operacional Windows (2008R2 e 2012R2).
Testamos com êxito o aplicativo em um sistema operacional Windows Server 2008 R2 (ambas as instâncias de SW "client" e "server" executadas no sistema operacional WIN 2008R2); nesse caso, o servidor fornece, dentro da mensagem inicial "Server Hello" do handshake TLS1.2 sob a seção "Certificate Request", uma lista de "Distinguished Names" que corresponde ao conteúdo do Armazenamento de Certificados da CA Raiz Confiável (Local Computador) em execução no mesmo servidor, de acordo com o padrão TLS1.2 RFC.
No entanto, ao executar o mesmo aplicativo (usando o mesmo conjunto de certs) em um ambiente Win2012 R2 OS, durante a mensagem Server Hello, a peça Certificate Request continua retornando uma lista DN vazia (ou seja, o certificado 0 está listado) , mesmo se o mesmo conjunto de autoridade de certificação raiz confiável estiver disponível no armazenamento de autoridade de certificação raiz confiável (computador local).
Quando o SW age como cliente no handshake TLS1.2, sendo executado em 2008R2 ou 2012R2, o SW pode usar com êxito um certificado de autenticação de cliente disponibilizado / instalado no computador local - > Pessoal - > Certificados.
Eu não estava envolvido no desenvolvimento de código do recurso criptográfico do programa, mas tenho a sensação de estar faltando algumas configurações adicionais introduzidas no nível do sistema operacional ao passar de 2008R2 para 2012R2, em vez de ter um problema de SW - daí eu queria saber se alguém poderia sugerir possíveis configurações do sistema operacional que precisem ser adaptadas.
Obrigado