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