/
943.txt
109 lines (75 loc) · 6.53 KB
/
943.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
[3] [DFN[[[Common Name]]]] ([DFN[[CODE[[[CN]]]]]]) は、 [[DN]] の[[属性型]]の1つです。
* 仕様書
[REFS[
- [1] [CITE@en[RFC 6125 - Representation and Verification of Domain-Based Application Service Identity within Internet Public Key Infrastructure Using X.509 (PKIX) Certificates in the Context of Transport Layer Security (TLS)]] ([TIME[2015-03-13 22:27:53 +09:00]] 版) <https://tools.ietf.org/html/rfc6125#section-1.8>
- [4] [CITE@en[RFC 6125 - Representation and Verification of Domain-Based Application Service Identity within Internet Public Key Infrastructure Using X.509 (PKIX) Certificates in the Context of Transport Layer Security (TLS)]] ([TIME[2015-03-13 22:27:53 +09:00]] 版) <https://tools.ietf.org/html/rfc6125#section-2.3>
- [11] [CITE[[[BR]]]] ([TIME[2014-11-01 05:54:38 +09:00]] 版) <https://cabforum.org/wp-content/uploads/BRv1.2.3.pdf#page=17>
- [18] ([TIME[2014-11-01 05:09:16 +09:00]] 版) <https://cabforum.org/wp-content/uploads/EV-V1_5_2Libre.pdf#page=16>
]REFS]
* 意味
[23] [CODE[[[CN]]]] は、 [[DN]] が表す対象の名前を表します。
[[subject]] 欄なら [[subject name]]、[[発行者]]欄なら[[発行者]]の名前を表します。
[24] [[サーバー証明書]]では、[[サーバー]]の[[ドメイン名]]を指定するのが普通です。
[25] [[CA証明書]]では [[CA]] の名前、[[クライアント証明書]]では[[利用者]]の名前を[[自然言語]]で記述することが多いようです。
* 構文
[20] 値は [CODE[[[DirectoryString]]]] です。
[21] 次に示す通り、文脈により更に制約があります。
* CN-ID
[2] [DFN[[[CN-ID]]]] は、[[証明書]]の [CODE[[[subject]]]] [[欄]]の [[RDN]]
であって、型が [CODE[[[CN]]]] の [[attribute-type-and-value pair]]
を丁度1つだけ含んでいて、その値が[[ドメイン名]]全体であるものです [SRC[>>1]]。
;; [8] 複数含まれる場合、どれを選択するべきかについて混乱があるため ([[RDN]] 参照)、
除外されています [SRC[>>4]]。
;; [9] しかし実際には [[CN-ID]] が複数含まれる[[証明書]]が使われているようです。
[[service identity]] を参照。
[5] [[証明書]]の [[subject]] である [[application service]] は、
[CODE[[[subject]]]] [[欄]]により ([[CN-ID]] として) 記述することもできますし、
[[SAN]] により ([[DNS-ID]]、[[SRV-ID]]、[[URI-ID]] として) 記述することもできますし、
その両方を使うこともできます。従来[[証明書]]は [[CN-ID]] によって
[CODE[[[CN]]]] に [[FQDN]] を記述する形を取ってきました。しかし [CODE[[[CN]]]]
は[[ドメイン名]]だけでなく、[[人間可読]]な文字列を記述したり、
[[ドメイン名]]の [CODE[[[CN]]]] と[[人間可読]]な [CODE[[[CN]]]]
の両方を含めたりすることもできます。 [SRC[>>4]]
[EG[
[6] 例えば、 [CODE[CN=A Free Chat Service,CN=im.example.org,O=Example Org,C=GB]] [SRC[>>4]]
のような [[RDN]] もあり得ます。
]EG]
[7] 従ってできるだけ [[CN-ID]] よりも [[SAN]] を使うべきです。しかし[[後方互換性]]その他の理由で
[[CN-ID]] への対応を継続したい仕様は、そうしても構いません。 [SRC[>>4]]
;; [10] 要件と処理方法については [[service identity]] も参照。
* CA/Browser Forum による規定
[13] [[BR]] に従う [[CA]] が発行する[[証明書]]の [[subject]] 欄の [[CN]] では、
値は [[FQDN]] ([[ワイルドカードFQDN]]を含む。) または [[IPアドレス]]を1つだけ指定したものでなければ[['''なりません''']]
[SRC[>>11]]。
[16] その値は [[SAN]] の [CODE[[[dNSName]]]] や [CODE[[[iPAddress]]]]
として指定したもののいずれかでなければ[['''なりません''']] [SRC[>>11]]。
[19] [[EV証明書]]では、[[ドメイン名]]を1つだけ指定したものでなければ[['''なりません''']]。
[[ワイルドカード証明書]]は認められていません。 [SRC[>>18]]
[14] この[[欄]]は[[非推奨]]です (禁止はされていません) [SRC[>>11, >>18]]。
;; [15] [[必須]]では無いようです。
;; [17] 複数の [CODE[[[CN]]]] を指定する可能性には言及がありません。
[12] [[BR]] に従う [[CA]] が発行する[[証明書]]では、 [[subject]] [[CN]] における[[内部名]]や[[予約済みIPアドレス]]の指定は2016年10月1日までに全廃することとなっています [SRC[>>11]]。
[FIG(quote)[
[FIGCAPTION[
[22] [CITE@ja[Mobile Creation | ソフトバンクモバイル]]
([TIME[2014-08-29 10:51:46 +09:00]] 版)
<http://creation.mb.softbank.jp/mc/tech/tech_web/web_ssl.html>
]FIGCAPTION]
> 一部のSoftBank 3G携帯電話において、HTML中のURIのホスト部(FQDN)を大文字で記述した場合でも、HTTPリクエストは小文字にて行うものがあります。このため、ホスト部に大文字を使用した場合、SSL認証を行う際のcommon name(CN)との比較にて、正規の証明書と認識しないことがあります。
> FQDNとCNを比較する際、大文字・小文字を区別するか否かはサーバ証明書のエンコード方式(データ型)に依存します。このため、サーバ証明書のCN属性値は小文字とするか、大文字・小文字を区別しない型であるPrintableStringで記述することを推奨します。
]FIG]
[26] [CITE@en[308330 - Remove support for common names in certificates; only support Subject Alt Names - chromium - Monorail]]
( ([TIME[2017-05-22 19:08:45 +09:00]]))
<https://bugs.chromium.org/p/chromium/issues/detail?id=308330>
[27] [CITE@en[1245280 - don't fall back to subject common name for name information for new certificates]]
( ([TIME[2017-05-22 19:12:24 +09:00]]))
<https://bugzilla.mozilla.org/show_bug.cgi?id=1245280>
[28] [CITE@en[700595 - Chrome no longer accepts certificates that fallback to common name (ERR_CERT_COMMON_NAME_INVALID) - chromium - Monorail]]
( ([TIME[2017-05-22 19:15:23 +09:00]]))
<https://bugs.chromium.org/p/chromium/issues/detail?id=700595&desc=2>
[29] [CITE@en[1089104 - ssl_error_bad_cert_domain when subjectAltName extension is missing and Subject CN is encoded as TeletexString]]
([TIME[2018-08-11 20:22:07 +09:00]])
<https://bugzilla.mozilla.org/show_bug.cgi?id=1089104>
[30] [CITE@en[308330 - Remove support for common names in certificates; only support Subject Alt Names - chromium - Monorail]]
([TIME[2018-08-11 20:26:57 +09:00]])
<https://bugs.chromium.org/p/chromium/issues/detail?id=308330>