CATEGORY

システムエンジニアリング

Apacheでクライアント証明書認証の方法

概要 クライアント証明書認証を行うリバースプロキシサーバを構築する方法を説明します。 フロントのリバースプロキシサーバ、バックエンドにWebアプリを配置した構成を想定しています。 リバースプロキシサーバでは、クライアント証明書の署名や有効期限などを検証する想定です。 Webアプリでは、サインインユーザが当該ユーザに対して発行されたクライアント証明書を使っているかを検証する、等のようにWebアプリで […]

検証用のリバースプロキシサーバの構築方法

リバースプロキシサーバで設定されるHTTPヘッダを使ったアプリの機能が必要になる場合がありますが、開発環境にリバースプロキシサーバが用意されることは経験的にほとんどなく、動作確認に困ることが多々あります… ここでは開発や検証に使用できる簡易なリバースプロキシサーバの構築方法について説明します。 概要 開発や検証を目的とし、ローカルPCにリバースプロキシサーバを構築する方法を説明します。 […]

ルート証明書を使ったサーバ証明書・クライアント証明書の作成方法

概要 検証・開発環境での使用を前提とした、ルート証明書の作成、その証明書で署名したサーバ証明書とクライアント証明書を作成する手順を説明します。 可能な限りシンプルで簡単な条件・手順になっています。結果として、証明書の作成条件やコマンド操作ではセキュリティを考慮していないことに注意してください。(証明書の有効期限やその他条件、パスワードの取り扱い等) 単純に自己署名のサーバ証明書やクライアント証明書 […]

Windowsの証明書ストアの基礎知識と確認方法

※証明書ストア、システムストア、物理ストアの厳密な定義や違いを読み解けなかったため、マイクロソフトのリファレンスを意訳して言葉を使用しています。 証明書ストアの基礎 証明書は「ローカルコンピューター」または「現在のユーザー」と呼ばれる証明書ストア(システムストア)に保管されます。 それぞれの証明書ストア(システムストア)は、さらに「個人」「信頼されたルート証明書機関」等の物理ストアに分かれています […]

.NET Core(C#): privateフィールドの値の取得方法

テストコードの作成で、テスト対象のインスタンスのprivateフィールドの値を検証したい場合があります。 対象インスタンスの型を取得し、Type.GetField()でフィールドの定義であるFieldInfoをできます。このオブジェクトのFieldInfo.GetValue([対象インスタンス], [フィールド名])で値を取得できます。 Type.GetField()を実行する際、適切なフラグも指 […]

localhost(pfx)をPEM形式の証明書と鍵に変換

開発環境にて、Visual Studioのインストール時に追加されるlocalhostサーバ証明書(IIS Express Development Certificate)を、Apache httpdサーバで利用できるようにPEM形式に変換する方法を説明します。 前提 Windows 10環境で検証しています。 Visual Studio 2019のインストールで、ユーザの「信頼されたルール証明機 […]

デジタル証明書のエンコードと拡張子の違い

デジタル証明書の種類と拡張子の理解が曖昧だったので整理してみました。 証明書や鍵そのものは基本的にはバイナリデータです。 これらのデータは、X.509やPKCSで仕様化されています。 X.509: 公開鍵証明書の標準形式や証明書パス検証アルゴリズムなどを定めている。 PKCS: RSAセキュリティテスト社が公開した公開鍵暗号標準である。 証明書や鍵のファイルの拡張子は標準化されていませんが、次のよ […]

.NET Core(C#): JsonSerializer実践オプションとコンバータ

業務アプリの開発を想定したJsonSerializerの使い方とサンプルです。 概要 .NET Core 3.1の標準パッケージSystem.Text.Jsonに含まれるJsonSerializerを使って、クラス・プロパティの値をJSONに変換(シリアライズ)、JSONの値をクラス・プロパティに変換(デシリアライズ)する方法を説明します。 Visual Studio 2019 + .NET Co […]

.NET Core(C#): JsonSerializerの単純な使い方

JsonSerializerの基本的な使い方とサンプルを説明します。 概要 .NET Core 3.1の標準パッケージSystem.Text.Jsonに含まれるJsonSerializerを使って、クラス・プロパティの値をJSONに変換(シリアライズ)、JSONの値をクラス・プロパティに変換(デシリアライズ)する方法を説明します。 Visual Studio 2019 + .NET Core 3. […]

.NET Core: Microsoft.Graph.Authの正式版予定

.NET CoreでMicrosoft Graphを操作するために、Microsoft Graph API SDK(“Microsoft.Graph”パッケージ)の使用を考えています。このパッケージでは認証機能(認証プロバイダ)は提供しておらず、別途認証用のパッケージを使用するか独自に実装する必要があります。 マイクロソフトのサンプルや資料を見ると、「Microsoft G […]