Eu instalei um certificado de cliente no meu servidor cliente. Ao fazer uma solicitação HTTPS do cliente para o servidor de destino com o certificado de cliente, os logs do IIS informam que ocorreu um erro 500.0.64 (esse é o log do IIS do servidor de destino). O aplicativo cliente que faz a chamada a partir do servidor cliente é um site .Net hospedado no IIS.
No servidor de destino, o IIS é configurado para "Requerer SSL" e os certificados de cliente são definidos como "Requerer". Se eu não incluir o certificado na solicitação, recebo um erro 403 Proibido, que está correto. Se eu alterar a configuração do certificado de cliente para 'Aceitar', ainda receberei um erro 500.0.64 se o certificado for passado, mas se não for o aplicativo hospedado no servidor de destino estará acessível.
Como teste, criei um aplicativo de console simples que coloquei no servidor do cliente. Isso usa o certificado do cliente e funciona perfeitamente, com o certificado sendo validado com êxito na máquina de destino. Isso usa código idêntico para gerar a solicitação http, como o site hospedado no IIS. Portanto, concluí que o problema não pode estar com o aplicativo cliente e não pode estar com a máquina de destino - correta ou incorretamente.
Então, por que a inclusão do certificado de cliente na solicitação do aplicativo hospedado do IIS causa esse erro, embora seja adequado para o aplicativo de console? Alguém pode oferecer algum conselho sobre como diagnosticar ainda mais o problema?
Eu segui o conselho desta resposta como o cenário é virtualmente idêntico. No entanto, a chave do registro em questão não existe nas máquinas cliente e de destino, portanto, não acredito que essa seja a causa.