这两个动作似乎是相同的:
- 使用X.509证书中的基本约束扩展来表示它是CA证书
- 使用密钥用途扩展,例如表示公钥可用于证书签名。
这些扩展之间有什么区别?
它们是否具有相同的目的或相互补充?
这两个动作似乎是相同的:
这些扩展之间有什么区别?
它们是否具有相同的目的或相互补充?
"密钥用途(Key Usage)"定义了证书中包含的密钥可以做什么。使用示例包括:加密、签名、签发证书、签发CRL。
"基本约束(Basic Constraints)"用于确定证书主体是否为CA,以及是否允许其签发子证书。
对于一个可用于签署证书的证书,该信息在某种意义上是重复的:
但是“基本约束”也将指定有效认证链的最大深度。
尽管有重复,但根据RFC 3280 --- X.509,您需要同时指定这两个选项。
这是来自RFC(第29页)的相关段落:当使用主题公钥验证公钥证书上的签名时,必须设置keyCertSign位。 如果设置了keyCertSign位,则基本约束扩展(4.2.1.10节)中的cA位也必须设置。
密钥用途描述证书的预期用途。
基本限制扩展描述具有该证书作为顶部的证书链可以多深。换句话说,此扩展由CA用于限制其子CA的活动,当子CA证书被颁发时使用该扩展。如果顶级CA获得子CA,则允许子CA发行终端用户证书,但不允许子CA拥有自己的子CA。