86 votes

RestSharp - Ignorer les erreurs SSL

Est-il possible de faire en sorte que RestSharp ignore les erreurs dans les certificats SSL ? J'ai un client de test, et le service auquel je me connecte n'a pas encore de certificat valide.

Lorsque je fais une demande maintenant, j'obtiens l'erreur suivante :

The underlying connection was closed: Could not establish trust 
relationship for the SSL/TLS secure channel.

95voto

Michael Skarum Points 238

Comme l'a suggéré John :

ServicePointManager.ServerCertificateValidationCallback +=
        (sender, certificate, chain, sslPolicyErrors) => true;

68voto

Hamza Points 125

Vous pouvez contourner la vérification ssl

Au niveau de l'objet :

(Utilisation de RestSharp v106.0.0 mais avant le v107)

//bypass ssl validation check by using RestClient object
var restClient = new RestClient(baseUrl);
restClient.RemoteCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;

(L'utilisation de RestSharp 107 conformément à la guide de migration )

//bypass ssl validation check by using RestClient object
var options = new RestClientOptions(baseurl) {
    RemoteCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
};
var restClient = new RestClient(options);

OU

Au niveau de l'application :

//bypass ssl validation check globally for whole application.
ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;

13voto

Nigel Thomas Points 159

Il y a une meilleure solution que de modifier votre code. 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'un certificat auto-signé. Si vous utilisez IIS Express, vous en avez déjà un, il vous suffit de le trouver. Si vous ne l'avez pas encore, ouvrez Firefox ou un autre navigateur et allez sur votre site web. Vous devriez pouvoir afficher les informations relatives au certificat dans la barre d'URL et, selon votre navigateur, vous devriez pouvoir exporter le certificat.

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 avez besoin.

Désormais, votre ordinateur dans son ensemble fera implicitement confiance aux 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. Lorsque vous passerez en production, le système continuera à fonctionner à condition qu'un certificat valide soit installé.

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