Eviter les erreurs de certificats sur des appels https en .NET
18 Août 2010 , Rédigé par Hugues MEUNIER
Lorsque nous développons des applications qui font appel à des liens externes en https, nous n'avons pas en général les certificats cibles de production.
Il faut donc passer par des certificats auto signés ou des certificats gratuits (cacert). Il peut y avoir des problèmes car les certificats auto signés ne sont pas reconnus en dehors de la machine où ils ont été créés et une exception peut être générée s'il n'y a pas de correspondance entre le nom du certificat et le nom complet de l'url accédée...
Heureusement, il est possible de désactiver, en c#, les mécanismes de vérification au niveau du protocole SSL et des certificats.
Il suffit de dériver une classe de ICertificatePolicy :
public class MyPolicy: ICertificatePolicy
{
public bool
{
return true;
}
}
et d'appeler cette policy par défaut :
System.Net.ServicePointManager.CertificatePolicy = new MyPolicy();
Tous les appels System.Net (proxy client WS, WCF ou HttpWebRequest) utiliseront cette policy.
Il est important de préciser qu'il ne faut pas mettre en place cette astuce en production car elle entraîne la désactivation des mécanismes de sécurité Windows qui protègent contre certaines attaques (le phishing).
Newsletter
Abonnez-vous pour être averti des nouveaux articles publiés.
Pages
Catégories
- 79 .NET
- 35 General
- 7 Hardware
- 5 Architecture applicative
- 4 J2EE
- 2 Cloud
- 2 Microsoft
- 2 Rails
- 2 WPF
- 1 Architecture technique
- 1 Astronomie
- 1 IA