Eu tenho um aplicativo Xamarin.Forms que implementa a fixação de certificado utilizando a classe e o método ServicePointManager.ServerCertificateValidationCallback. No Android e iOS, isso funciona sem problemas, pois permitirá conexões com serviços esperados cujas chaves de certificado foram fixadas e não permitirá conexões para as que não tenho.
No entanto, na UWP, todas as conexões são permitidas, independentemente de a chave do certificado ter sido fixada ou não. Eu retornei explicitamente false do método de validação de certificado e a conexão ainda é permitida. Estou certo de que a verificação está sendo executada porque depurei e passei pelo método de validação de certificado.
O que pode estar causando a conexão, mesmo que eu esteja retornando falso da verificação de validação?
ServicePointManager.ServerCertificateValidationCallback = ValidateServerCertficate;
private static bool ValidateServerCertficate(
object sender,
X509Certificate certificate,
X509Chain chain,
SslPolicyErrors sslPolicyErrors
)
{
return false;
}
fonte
ValidateServerCertficate
chamar em seu lado?Respostas:
Consegui consertar isso da seguinte maneira:
Isso coloca o seguinte xml no arquivo Package.appxmanifest:
fonte