2016-09-09 27 views
2

私は非常に興味深いが、私はいくつかの問題があるこのコースを使用しています。ssl自己署名証明書エラー - localhost

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

私は、証明書のエラーを取得するが、私はこの問題である理由を理解しています。この証明書は、自分のコンピュータの名前に接続する必要があります。私は彼がこの証明書をどのように伝えたのか、そしてどのようにこの問題を編集するのか分かりません。ここで

enter image description here

重要なコードです。この問題を証明書名で解決するにはどうすればよいですか?

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); 
      } 
     } 
    } 

} 
+0

解決したい問題は何ですか?ブラウザの赤い盾? – ElmoDev001

+0

私はこの場所 "create for:localhost"を変更したいと思います。私は自分のコンピュータの名前を入れたいと思いますが、この証明書は私の意見では自動的に作成されており、私はそれを上書きしたいと思います。 –

+0

有効な証明書を取得するには、購入するしかありません。自己署名証明書の詳細については関係ありません。 – ElmoDev001

答えて

5

このエラーは正しいです。使用している証明書は、ドメインlocalhostの場合は、それ自体で署名されています。信頼できる証明書ルート(Verisignなど)によって署名されていないため、ブラウザは証明書が有効でないため、サイトとなる可能性があることを警告します。

エラーは機能に問題を引き起こしてはいけません。本番環境に展開するときは、展開先のドメインに署名された信頼できる証明書を取得する必要があります。

ドメインの証明書に署名する人はいませんが、エラーが発生した場合は、説明しているように、使用している証明書をMMCを使用して信頼できるルート証明書の一覧に追加できますthis TechNet articleにあります。

+0

私は彼がこの証明書をコードで作成したと思います。おそらく彼はこの情報を自動的に取るでしょう。 –

+0

'localhost'は' [:: 1] 'へのエイリアスです。これは常にあなたのコンピュータを指すIPアドレスです。ただし、[hostsファイル](https://technet.microsoft.com/en-us/library/cc958812.aspx)を編集することで、ローカルマシンの別の名前を追加することはできますが、証明書の有効性は変わりません。 – Actorclavilis

+0

証明書は、通常、使用しているHTTPサーバーの構成で、アプリケーションコードの外部に格納されます。 [このTechNetの記事](https://support.microsoft.com/en-us/kb/315588)には、使用する証明書の変更に関する情報があります。ただし、証明書を信頼できるようにするには、その証明書をローカルの信頼できる証明書リストに追加する必要があります。 – Actorclavilis

関連する問題