如何在不出现证书无效错误的情况下使用我自己的网站 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).