如何在不出现证书无效错误的情况下使用我自己的网站 api
how to consume my own web api without getting a certificate invalid error
我正在尝试调用和使用我自己的 api,它与我的 mvc 应用程序在同一个解决方案中,默认情况下所有请求都被强制为 运行 on 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;
您似乎与一个不受信任的机构合作,可能是自签名的。
您可以将自签名证书安装到受信任的 CA 存储中。
这里有一个 link 解释了如何做到这一点。
如果它已经被信任,那么我猜你的 API 和网络应用程序有 2 个不同的域名,证书只颁发给其中一个。在这种情况下,您可能需要发出 wild card certificate 才能使用 www.example.com(您是网络)或 (api.example.com).
我正在尝试调用和使用我自己的 api,它与我的 mvc 应用程序在同一个解决方案中,默认情况下所有请求都被强制为 运行 on 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;
您似乎与一个不受信任的机构合作,可能是自签名的。
您可以将自签名证书安装到受信任的 CA 存储中。
这里有一个 link 解释了如何做到这一点。
如果它已经被信任,那么我猜你的 API 和网络应用程序有 2 个不同的域名,证书只颁发给其中一个。在这种情况下,您可能需要发出 wild card certificate 才能使用 www.example.com(您是网络)或 (api.example.com).