【マイブームのSSLについて語る】全年齢向け、SSL/TLSサーバー証明書の語り。


<h6>この記事は次に示す通り、解説を目的とするものではありませんが、検証を実施ています。(もし誤りがございましたらコメントでお知らせくださいませ。)</h6>

おまけとして、最後に実際に証明書を作成する手順も紹介しています。

:::note
追記：当初はタイトルを、"解説"としておりましたが、その部分を消去いたしました。ただ、記事の内容の検証などは引き続きしっかりと行っていきたいと思います。
:::

![SSL/TLS アイキャッチ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3819700/2b00f1df-5a5e-5a2c-0ff3-5d43e38bf712.png)

---
まず、サーバー証明書について！
## Q. どんな種類がある？
A. 3種類が有名です！詳細は以下の表をご覧ください：

|  | ドメインの所有権確認 | 企業の実在性確認 | 拡張認証/確認 |
|:-:|:-:|:-:|:-:|
| DV | 〇 | ✕ | ✕ |
| OV | 〇 | 〇 | ✕ |
| EV | 〇 | 〇 | 〇 |

- **DV (Domain Validation)**: ドメイン認証
- **OV (Organization Validation)**: 組織認証
- **EV (Extended Validation)**: 拡張認証

EVは、OVおよびDVの確認内容をさらに詳細に、そして厳格に認証したものです。

:::note info
3種類の証明書は、暗号化の技術自体は基本的に同じです。ただし、認証の内容に違いがあります。
:::

:::note warn
以前は、IEやChrome/EdgeなどでEV証明書は鍵マークやアドレスバー全体が緑色になり、企業名が表示されていましたが、現在はそのような表示はされません。
:::

---

## 証明書内容の違い

### 1. ドメイン認証 (DV)
![DV Example](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3819700/156c4765-50c0-f0ee-cc0a-991a373eb6ea.png)

- サブジェクト名の中身は基本的に`"通称"`のみです。
- 通称には通常ドメイン名が入ります。

### 2. 組織認証 (OV)
![OV Example](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3819700/a906bb0e-1aa9-4a57-79b1-8ace74d32a02.png)

- サブジェクト名に以下の要素が含まれます：
  - `"通称"`
  - `"国または地域"`
  - `"都道府県/州"`
  - `"地域"`
  - `"組織"`

### 3. 拡張認証 (EV)
![EV Example](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3819700/b6096f4f-629f-8d8b-9d7f-0192fb1ec042.png)

- OVの要素に加え、以下の項目が追加されます：
  - `"業種"`
  - `"法人の国/地域"`
  - `"シリアル番号"`

参考資料:
- [Extended Validation Guidelines](https://cabforum.org/extended-validation/)

EV証明書は法人格を持つ社団のみが登録可能で、登記に基づいた内容が記載されます。

---

## ドメイン設定の種類
SSLを購入する際、以下の2つのタイプに分けられます（もちろんシングルドメインも可能です）：

|  | コモンネームのサブドメイン | 別のドメイン |ドメイン形式の例|
|:-:|:-:|:-:|:-:|
| マルチドメイン | △  | 〇 |example.com, www.example.com|
| ワイルドカード | 〇 | △ |*.example.com|

- **マルチドメイン**: 異なるドメインをカバー可能。
- **ワイルドカード**: 同一ドメイン内のサブドメインをカバー。

例：YouTubeの証明書はマルチドメインとワイルドカードを組み合わせて運用されています。
![YouTube Example](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3819700/b6afd064-df87-1219-2804-5aea8511343f.png)

参考資料:
- [Wildcard Certificates](https://letsencrypt.org/docs/faq/#wildcard-certificates)

:::note alert
同じ名前の証明書/認証局の証明書ファイルが公開されていても、絶対にダウンロードやインストールしないでください。ウイルス感染の可能性があります。
:::

---

## おまけ、、
この記事の中でも実は登場していましたが、今回オレオレ拡張認証君がいました！
Self-signed Extended Validationとかいう意味わからん状態になっています。笑
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3819700/9d281b3b-0cd3-6bb5-8606-4ac54026dbcd.png)
こんな感じでいくつかファイルができてしまい、かさばりますが、その代わりEVのようなきめ細かい証明書作成もできます。
ただ、今回作成した、EV証明書は、ブラウザで特別な諸名所として、認識することはありません。まず、自己署名の場合でもOCSPの対応などまでは可能であっても、CT(Certificate Transparency)には登録できないため、そもそも、それはローカルの実験ということになります。

何気に設定している認証局運用規定へのURLを設定していました。
ですから、「発行者のステートメント(S)」が使えるようにしていました！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3819700/4fc7ca9c-fc66-e010-6934-dba73905b496.png)

あと、windows標準の証明書ビューアー的なものは、ビジネスカテゴリーや、業種などのカスタムOIDの内容は読み込まず、そのまま出力しているのか、おそらくそうです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3819700/b1864858-0bf5-e021-f2a0-746db4429f8e.png)
以上！
## その他の証明書

- **コード署名**: アプリケーションの署名に使用。Windowsではインストール時に確認可能。
- **S/MIME**: メール暗号化や署名に使用。
- **BIMI**: メールアイコンの商標確認用。

普段目にしない証明書ですが、ぜひ機会があれば注意深く観察してみてください！

参考資料:
- [Code Signing Certificates](https://www.digicert.com/code-signing/)
- [S/MIME Email Certificates](https://www.globalsign.com/en/email-security/smime)

---

**アドベントカレンダー2024 Uniproより**