証明書の作成方法 まとめ

# 概要
証明書について、簡単にまとめてみました。個人的なメモレベルです。

## 1. 自己署名証明書
おもにテスト用に使われる。
コマンド１発で、ルート証明書、目的の証明書（サーバー証明書やクライアント証明書）、pfxファイルなどをまとめて作成することができる。

https://qiita.com/carol0226/items/8663842e2c7422de7e55

## 2. 証明書要求 (CSR)
証明書要求 (CSR) を行う方法は、複数存在している。
いずれも、証明書を発行するための元となる情報を申告して 証明機関 (CA) から証明書を発行してもらう行為である。

### 2-1 .CertReqコマンド
".inf" というファイルで CSR作成に必要な情報を定義し、CertReq -new というコマンドを使って CSR を作成する。

https://qiita.com/carol0226/items/e3482e03df636f4a689b#2-1-証明書要求-csr-の作成申請

### 2-2. Internet Information Services (IIS)
Webサーバーである IIS は、自身で CSR を作成する機能を持っている。

その CSR を使って 公的証明機関 へ要求を行って 証明書の発行を依頼できる。

https://www.cybertrust.co.jp/sureserver/support/technical/iis10.html

### 2-3. アプライアンス
Firewall などの証明書を必要とするネットワーク機器などで　CSR を作成するための機能を備えているため、その機能を使って作成する。
コマンドや 自身を管理する Web 管理画面上で実施することが一般的。

**Cisco ASA で CSR を発行する際の例**

https://www.cisco.com/c/ja_jp/support/docs/security-vpn/public-key-infrastructure-pki/200339-Configure-ASA-SSL-Digital-Certificate-I.html#toc-hId--806081973

## 3. 証明機関

### 3-1. 証明証要求の承認について
依頼者から提供された CSR を受け取って確認し、要求を承認する。
承認された結果、証明書が作成され、出来上がった証明書を 依頼者へ発行される。

**AD CS の場合**

https://qiita.com/carol0226/items/0c9a6c880fcacbcb8998

**公的な証明機関の場合**
申請時に、登記簿などを提出し、証明機関側で審査が行われる。

### 3-2. ルート証明書について

#### 3-2-1. 公的証明機関
ルート証明書は 著名な OS や、デバイス等に 出荷時から導入済みとなっている。
そのため、ルート証明書 をデバイスに配布する必要は基本的には無い。
そのため、利用者がルート証明書を意識してデバイスに導入する必要が無く、初めてデバイスを手にした時から 証明書を使ったサービスを利用できる。

なお、ルート証明書も 失効されたり、新しく 提供されたりするが、OS の自動更新機能などを使って更新されるような仕組みになっている。

**Windows OS の場合は、以下の仕組みによって ルート証明書が更新される**

https://jpwinsup.github.io/blog/2021/12/14/PublicKeyInfrastructure/CertificateManagement/about-windows-root-certificate-program/

#### 3-2-2. Active Directory 証明書サービス (AD CS)
Microsoft が、Windows Server の役割サービスとして提供する自営用の証明機関。
公的な証明機関と違って、ルート証明書は OS や、デバイスには 導入されていない。
そのため、デバイスへ、AD CS から発行されたルート証明書をインポートする必要がある。
エンタープライズ CA と スタンドアロン CA がある。

https://qiita.com/carol0226/items/cb38ed3188c520bd9d64

##### 3-2-2-1. エンタープライズ CA
エンタープライズ CA を使うためには、Active Directory ドメイン環境 (AD DS) と組み合わせて利用する必要があるが、AD DS の機能を使って、ルート証明書を Windowsクライアントに自動配布することが出来る。
社内端末向けに、公的証明機関を使わずに運用することができる。

エンタープライズ CA を使うと、ドメインに サーバーや クライアントが 参加 した際に、自動的に CSR が構成されて、証明書を発行し、デバイスへ 自動的に配布させることが可能となっている。

https://qiita.com/carol0226/items/564a21455cd3e5f58906

##### 3-2-2-2. スタンドアロン CA
Active Directory ドメイン環境 (AD DS) が無くても利用できる。
ルート証明書をクライアントに配る機能が無いため、利用者が手動で対応する必要がある

https://qiita.com/carol0226/items/33042c5c639c79832aeb

## 4. 証明書のインポート／配布
証明機関から発行された証明書を、ホストやアプライアンスへインポートすることで、証明書を利用できる

### 4-1 .CertReqコマンド
2-3. 発行された証明書の受け取り を参照
https://qiita.com/carol0226/items/e3482e03df636f4a689b#2-3-発行された証明書の受け取り

**コマンド実行例**
CertReq -Accept certnew.p7b

### 4-2. Internet Information Services (IIS)
証明機関から発行された証明書を IIS に取り込み、バインドします。

**4-公的証明書を発行して証明書を取得ダウンロードする** を参照

https://qiita.com/carol0226/items/97488c72035214e7868f#4-公的証明書を発行して証明書を取得ダウンロードする

### 4-3. アプライアンス
証明機関から発行された証明書を アプライアンスに取り込み、バインドします。

**Cisco ASA の例**

https://www.cisco.com/c/ja_jp/support/docs/security-vpn/public-key-infrastructure-pki/200339-Configure-ASA-SSL-Digital-Certificate-I.html#toc-hId-345684156

# 5. 証明書失効
証明機関が 既に発行された証明書を 失効（無効）にするための行為。
発行済みの証明書には、CRL という失効リストの参照先が記録されている。

CRL のアドレスは、証明機関自身が運営する Web サーバー上で提供されている。

証明書を扱うサーバー、デバイスでは、この CRL へアクセスを行い、その証明書が 失効 していないかを確認する。

例えば、以下のように使われる。

サーバー証明書が 有効かどうかで、アクセスした Web サイトが信頼できるものかを判断する。
クライアント証明書が 有効か、失効かを 判断することで、アクセス制御が実現できる。

## 5-1. AD CS の場合
https://qiita.com/carol0226/items/3f0d77848aed59751d9b

## 5-2. 公的証明機関の場合
以下で説明されているように、証明書を失効させる必要があった場合に、申請を行う事で失効される。

それとば別に、証明機関が独自の審査と判断によって、証明書が失効される場合もある。

https://jp.globalsign.com/support/cert-management/expired.html