ssl自签名证书错误 - localhost

Raf*_*per 2 c# asp.net-web-api

我正在使用这个非常有趣的课程,但我遇到了一些问题.

http://www.asp.net/web-api/overview/security/individual-accounts-in-web-api

我得到证书错误但我明白为什么会出现这个问题.此证书应连接到我的计算机名称.我不明白他如何生成此证书以及如何编辑此问题.

在此输入图像描述

这是重要的代码.用证书名称解决这个问题需要做些什么?

using System;
using System.Net;
using System.Net.Http;
using System.Web.Http.Controllers;
using System.Web.Http.Filters;

namespace LocalAccountsApp.Filters
{
    public class RequireHttpsAttribute : AuthorizationFilterAttribute
    {
        public int Port { get; set; }

        public RequireHttpsAttribute()
        {
            Port = 443;
        }

        public override void OnAuthorization(HttpActionContext actionContext)
        {
            var request = actionContext.Request;

            if (request.RequestUri.Scheme != Uri.UriSchemeHttps)
            {
                var response = new HttpResponseMessage();

                if (request.Method == HttpMethod.Get || request.Method == HttpMethod.Head)
                {
                    var uri = new UriBuilder(request.RequestUri);
                    uri.Scheme = Uri.UriSchemeHttps;
                    uri.Port = this.Port;

                    response.StatusCode = HttpStatusCode.Found;
                    response.Headers.Location = uri.Uri;
                }
                else
                {
                    response.StatusCode = HttpStatusCode.Forbidden;
                }

                actionContext.Response = response;
            }
            else
            {
                base.OnAuthorization(actionContext);
            }
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

Act*_*lis 5

那个错误是正确的.您使用的证书是由域本身签署的localhost.由于它未由受信任的证书根(例如Verisign)签名,因此您的浏览器会警告您证书无效,因此该站点可能是非法的.

该错误不应该导致功能问题,并且当您部署到生产时,您应该获得为您正在部署的域签名的受信任证书.

您不会让任何人为域签署证书localhost,但如果错误困扰您,您可以使用MMC将您正在使用的证书添加到受信任的根证书列表中,如本TechNet文章中所述.