0

我想警告用户有关使用不安全证书的 TLS 连接到与此类似的 Microsoft.Owin 自托管应用程序(释义)。

public class Startup
{
    public void Configuration(IAppBuilder appBuilder)
    {
        HttpConfiguration config = new HttpConfiguration();
        config.Routes.MapHttpRoute(
                name: "API",
                routeTemplate: "{controller}/{action}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

        appBuilder.UseWebApi(config);
    }
}

在这种情况下从不使用 ServerCertificateValidationCallback,所以这不起作用:

            ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(ValidateCertificate);

如何对 Microsoft.Owin 应用程序的连接进行证书验证?

4

1 回答 1

1

那是因为ServerCertificateValidationCallback用于验证诸如 之类的“远程”证书HttpClient,但您的应用程序本身就是一个 HTTP 服务器。

这样的应用程序从Windows HTTP API中获取服务器证书,该证书通常由机器管理员控制,您不应尝试验证。

如果您的目标是验证向您的应用发送请求的浏览器/应用,请通过ApiController.Request检查传入请求以查看它是否包含客户端证书。

于 2020-06-22T22:08:53.137 回答