有什么可以让RestSharp忽略SSL证书中的错误吗?我有一个测试客户端,我连接的服务还没有一个有效的cetificate.
当我提出请求时,我收到错误:
The underlying connection was closed: Could not establish trust
relationship for the SSL/TLS secure channel.
Run Code Online (Sandbox Code Playgroud)
提前致谢
/迈克尔
更新:
我最终使用:
ServicePointManager.ServerCertificateValidationCallback +=
(sender, certificate, chain, sslPolicyErrors) => true;
Run Code Online (Sandbox Code Playgroud)
Mic*_*rum 70
正如约翰所说:
ServicePointManager.ServerCertificateValidationCallback +=
(sender, certificate, chain, sslPolicyErrors) => true;
Run Code Online (Sandbox Code Playgroud)
M. *_*put 13
在对象级别:
//bypass ssl validation check by using RestClient object.
var restClient = new RestClient(baseUrl);
restClient.RemoteCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
Run Code Online (Sandbox Code Playgroud)
要么
在应用程序级别:
//bypass ssl validation check globally for whole application.
ServicePointManager.ServerCertificateValidationCallback += (sender, certificate, chain, sslPolicyErrors) => true;
Run Code Online (Sandbox Code Playgroud)
小智 8
有一个比修改代码更好的解决方案.理想情况下,您需要一个能够模拟您在生产环境中看到的条件并修改代码的解决方案将不会这样做,如果您在部署之前忘记取出代码,则可能会很危险.
您需要某种自签名证书.如果你正在使用IIS Express,你将拥有其中一个,你只需要找到它.如果您还没有,请打开Firefox或任何您喜欢的浏览器并转到您的网站.您应该能够从URL栏查看证书信息,并且根据您的浏览器,您应该能够导出证书.
接下来,打开MMC.exe,然后添加"证书"管理单元.将您的证书文件导入受信任的根证书颁发机构商店,这就是您应该需要的.
现在,您的计算机作为一个整体将隐式信任它自己生成的任何证书,您不需要添加代码来专门处理它.当您转到生产时,如果您在那里安装了正确的有效证书,它将继续工作.