マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

両方を行う必要がある。

クラアント

クラアントがサーバにクライアント証明書を渡すよう構成する。

Browser

Windows

Mac

HttpClient?

サーバ

  • サーバがクラアントからクライアント証明書を受けるよう構成する。
  • クライアント証明書はWeb -> AP にHTTPヘッダで渡される。
    • 例えは、Azure Web Appsでは、X-ARR-ClientCert?ヘッダを使用して渡される。
    • 他の中間層では、X-Client-Certヘッダなどが使用されるらしい。

Windows

IIS

IIS Express

Kestrel

Linux

Kestrel

Apache

nginx

ASP.NET

Web Forms

  • Page
    // System.Web.HttpRequest
    HttpClientCertificate cs = Request.ClientCertificate;

MVC

  • Controller
    // System.Web.HttpRequestBase
    HttpClientCertificate cs = Request.ClientCertificate;

WebAPI

  • ApiControler?
    // System.Net.Http.HttpRequestMessage
    // System.Net.Http.HttpRequestMessageExtensions
    X509Certificate2 cs = Request.GetClientCertificate();

ASP.NET Core

  • 現時点では、APIは用意されていない模様。
  • Web-APの連携が必要なので
    • IISに限定される.netには実装されているが、
    • netcoreappには実装されていない

みたいなコトだろうか?

MVC

WebAPI

証明書

OpenSSL

以下で生成してみたが、ダメ。

Visual Studio

  • Visual Studioの署名で作成したPFXであれば利用可能だった。
  • OpenSSLと何が違うか不明。何か属性が足りてないのか?
  • サーバから使用できるように設定する。

両方を行う必要がある。

参考

自己署名証明書の場合

クライアント側

サーバー側

Bouncy CastleでHTTPヘッダから取得したpemを読む的なイメージでイイのでは?


Tags: :.NET開発, :.NET Core, :ASP.NET, :ASP.NET MVC, :セキュリティ, :暗号化, :証明書


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019-02-19 (火) 14:10:21 (1d)