[9] [[証明書拡張]] [DFN[[[extended key usage]]]] は、[[証明書]]に含まれる[[公開鍵]]の用途を記述するものです。

* 仕様書

[REFS[
- [1] [CITE@en[RFC 5280 - Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile]]
([TIME[2015-02-22 15:44:10 +09:00]] 版)
<https://tools.ietf.org/html/rfc5280#section-4.2.1.12>
- [4] [CITE[[[BR]]]] ([TIME[2014-11-01 05:54:38 +09:00]] 版) <https://cabforum.org/wp-content/uploads/BRv1.2.3.pdf#page=43>
]REFS]

* 構文

[13] [[critlcal]] でも [[non-critical]] でも構いません [SRC[>>1]]。

[10] [CODE[[[id-kp-serverAuth]]]], [CODE[[[id-kp-clientAuth]]]]
などの値が [[RFC 5280]] で定義されています。

* 文脈

[12] 普通は [[EE証明書]]で使います [SRC[>>1]]。

[5] [[BR]] に従う[[ルートCA証明書]]は、本拡張を含めては[MUST[なりません]] [SRC[>>4]]。

* SSL/TLS 証明書における利用

[6] [[BR]] に従う[[下位CA証明書]]は [CODE[[[id-kp-serverAuth]]]] と
[CODE[[[id-kp-clientAuth]]]] の一方または両方を含めなければ[['''なりません''']]。
他の値も含めても構いません。本拡張は [[non-critical]] とする[['''べき''']]です。 [SRC[>>4]]

;; [7] 本拡張は [[RFC 5280]] によれば通常[[末端実体証明書]]にのみ含めるものですが、
本拡張が広く用いられるようになるまでの措置として含めることができるものです [SRC[>>4]]。

[8] [[BR]] に従う[[Subscriber Certificate]] は、[CODE[[[id-kp-serverAuth]]]] と
[CODE[[[id-kp-clientAuth]]]] の一方または両方を含めなければ[['''なりません''']]。
[CODE[[[id-kp-emailProtection]]]] も含めることができます。
それ以外は含める[['''べきではありません''']]。 [SRC[>>4]]

;; [[TLS証明書]]も参照。

-*-*-

[14] 
多くの[[中間証明書]]や[[EE証明書]]は
[CODE[serverAuth]]
と
[CODE[clientAuth]]
を含んでいるようです。

* 実装

[FIG(quote)[
[FIGCAPTION[
[2] [CITE[ExtendedKeyUsageとブラウザの挙動]]
([TIME[2005-02-13 00:45:15 +09:00]] 版)
<http://www.daily-labo.com/column/col050131.html>
]FIGCAPTION]

> つまり、ExtendedKeyUsageにserverAuthが無いものをサーバ証明書として使った場合、
> opensslは無視する
> InternetExplorerはちゃんと守る
> という動作をすることになります。

]FIG]


[FIG(quote)[
[FIGCAPTION[
[3] [CITE[ExtendedKeyUsageとブラウザの挙動]]
([TIME[2005-02-13 00:45:15 +09:00]] 版)
<http://www.daily-labo.com/column/col050131.html>
]FIGCAPTION]

> 試しにcriticalに設定してみました。
> extendedKeyUsage = critical, clientAuth, emailProtection, msSmartcardLogin
> これの設定でサーバ証明書を発行し、Apacheに組み込みます。
> そして、前述の原因調査と同様にアクセスしてみました。
> 結果は・・
> Apacheは立ち上がった
> IEはダメ
> opensslではアクセスできた

]FIG]

* 関連

[11] [[trust bits]] も参照。

* メモ

[FIG(amazon)[
[[TLS]]
]FIG]