我正在尝试调用和使用我自己的api,这与我的mvc应用程序在同一个解决方案中,默认情况下所有请求都被强制在https上运行:
我正在做以下事情:
using (var client = new HttpClient())
{
var productDetailUrl = Url.RouteUrl(
"DefaultApi",
new { httproute = "", controller = "ProductDetails", id = id },
Request.Url.Scheme
);
var model = client
.GetAsync(productDetailUrl)
.Result
.Content.ReadAsAsync<ProductItems>().Result;
return View(model);
}
然而我收到以下错误:
The remote certificate is invalid according to the validation procedure
我知道我可以使用以下方法传递此问题,但这在生产环境中存在安全风险。
ServicePointManager
.ServerCertificateValidationCallback +=
(sender, cert, chain, sslPolicyErrors) => true;
答案 0 :(得分:1)
您似乎正在与非信任的权威机构合作,可能是自签名的。
您可以将自签名证书安装到受信任的CA存储中。
这是一个link,解释了如何做到这一点。
如果已经信任,那么我猜你的API和网络应用程序有2个不同的域名,证书只发给其中一个。在这种情况下,您可能需要发布wild card certificate以与www.example.com(您是网络)或(api.example.com)合作。