87 votes

Contourner les erreurs de certificat SSL invalide lors de l'appel de services web en .Net

Nous mettons en place un nouveau SharePoint pour lequel nous n'avons pas encore de certificat SSL valide. J'aimerais appeler le service Web Lists pour récupérer certaines métadonnées sur la configuration. Cependant, lorsque j'essaie de le faire, j'obtiens l'exception suivante :

La connexion sous-jacente a été fermée : Impossible d'établir une relation de confiance pour le canal sécurisé SSL/TLS.

L'exception imbriquée contient le message d'erreur :

Le certificat distant n'est pas valide selon la procédure de validation.

Ceci est correct puisque nous utilisons un certificat temporaire.

Ma question est la suivante : comment puis-je dire au client du service web .Net ( Protocole SoapHttpClientProtocol ) pour ignorer ces erreurs ?

3voto

hasanaydogar Points 56
ServicePointManager.ServerCertificateValidationCallback +=
            (mender, certificate, chain, sslPolicyErrors) => true;

contournera l'invaild ssl . Ecrivez-le dans le constructeur de votre service web.

1voto

Senthil Points 201

Pour les nouveaux venus, vous pouvez étendre votre classe de service partiel dans un fichier cs séparé et ajouter le code fourni par "imanabidi" pour l'intégrer.

1voto

Nigel Thomas Points 159

Pour développer davantage le post de Simon Johnsons - Idéalement, vous voulez une solution qui simule les conditions que vous verrez en production et modifier votre code ne le fera pas et pourrait être dangereux si vous oubliez de retirer le code avant de le déployer.

Vous aurez besoin d'une sorte de certificat auto-signé. Si vous utilisez IIS Express, vous en avez déjà un, il vous suffit de le trouver. Ouvrez Firefox ou le navigateur de votre choix et rendez-vous sur votre site Web de développement. Vous devriez pouvoir afficher les informations du certificat dans la barre d'URL et, selon votre navigateur, vous devriez pouvoir exporter le certificat dans un fichier.

Ensuite, ouvrez MMC.exe, et ajoutez le snap-in Certificat. Importez votre fichier de certificat dans le magasin des autorités de certification racine de confiance et c'est tout ce dont vous devriez avoir besoin. Il est important de s'assurer qu'il est placé dans ce magasin et non dans un autre magasin comme "Personal". Si vous n'êtes pas familier avec MMC ou les certificats, il existe de nombreux sites Web contenant des informations sur la manière de procéder.

Désormais, votre ordinateur dans son ensemble fera implicitement confiance à tous les certificats qu'il a lui-même générés et vous n'aurez pas besoin d'ajouter du code pour gérer cela spécialement. Lorsque vous passerez en production, cela continuera à fonctionner à condition que vous ayez installé un certificat valide. Ne faites pas cela sur un serveur de production - ce serait mauvais et cela ne fonctionnera pas pour d'autres clients que ceux sur le serveur lui-même.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X