CATEGORY

SSL/TLS/PKI

認証・認可に使用できるクライアント証明書のフィールド

証明書のフィールド 証明書の仕様はRFC5280で定義されています。 1988年にITUが公開鍵基盤(PKI)をX.509として規格化しました。このPKIの一部として証明書も規格化されました。 インターネットで使用されるサーバ証明書やクライアント証明書はX.509証明書と呼ばれます。 今日ではバージョン3が使用されており、その内容はIETFのRFC 5280として公開されています。 証明書の内容の […]

X.509証明書のエラー原因と対応方法

はじめに サーバ証明書、クライアント証明書等のX.509証明書を作成する際に経験したエラーの原因と対応例の紹介です。 Windows環境で証明書を確認した際の「証明書の状態エラー」、ブラウザ(Chrome)でWebページにアクセスした際に表示される「ブラウザのエラー」に分けて紹介します。 サーバ証明書、クライアント証明書の作成例はこちらで紹介しています。 ここでは、Windows環境で証明書を作成 […]

X.509証明書仕様(RFC5280)でのOIDの読み方

OIDとASN.1 X.509証明書はRFC5280で定義されており、証明書を作成する際に使用するOIDもこの中で定義されています。 例えば、拡張キー使用法(EKU)の記載を探すために、RFC5280を”2.5.29.37″で検索しても見つかりません。OIDの定義は後述のようにASN.1という形式で定義されており、単純な番号の羅列では定義されていないためです。 拡張キー使用 […]

クライアント証明書を使った認証・認可方式

はじめに 利用ユーザに対して「マインバー操作」や「ユーザアカウント管理」などの重要な機能を提供する業務システムでは、そのような機能へのアクセスを制限する必要があり、その実現方式の一つとしてクライアント証明書を使う方法が考えられます。ここでは、典型的な業務システム(Webアプリ)を例題とした、クライアント証明書による認証・認可機能の実現方式について説明します。 パスワード認証や2要素認証などによるユ […]

自己署名クライアント証明書の作成とIIS認証設定

概要 Windows(PowerShell)で自己署名クライアント証明書を作成し、IISで認証できるようにする手順を説明します。 使用する環境は次の通りです。 OS Windows 10(64ビット) IDE Microsoft Visual Studio Community 2019(16.8.5) + C#(8.0) 証明書ファイルの拡張子の違いについては、次の記事をご覧ください。 複数のクラ […]

TeraTermを使ったSSH鍵の作成方法

WindowsでSSH接続するためのTera Termで、SSH鍵を作成する方法を説明します。 概要 Windows10(64ビット)で動作するTera Term 4.105で動作確認しました。 クラウドホスティングのVULTRにて、SSH鍵を作成する想定の手順となっています。 VULTRにおけるVPSの構築やSSH鍵の利用に関しては、こちらの投稿をご覧ください。 SSH鍵の作成方法 Tera T […]

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

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

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

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

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セキュリティテスト社が公開した公開鍵暗号標準である。 証明書や鍵のファイルの拡張子は標準化されていませんが、次のよ […]