首页 > 解决方案 > 如何允许/限制证书颁发另一个证书?

问题描述

如何制作不能签署其他证书的叶子证书?ica 是否有任何定义它可以颁发其他证书的内容?
希望有人可以提供使用 openssl 的示例。

标签: sslopensslcertificate

解决方案


正如@Steffen 在评论中提到的,CA 可以在具有 v3 扩展名时颁发证书basicConstraints=CA:true。即使没有它,根 CA 也可以工作,因为颁发者与主体相同,这隐含地暗示它是一个 CA。

从文档:

基本约束。
这是一个多值扩展,指示证书是否为 CA 证书。第一个(强制)名称是 CA,后跟 TRUE 或 FALSE。如果 CA 为 TRUE,则可以包含一个可选的 pathlen 名称,后跟一个非负值。

为确保仅在链下发布一定数量的证书,使用了另一个扩展:pathlen:1.

从文档:

pathlen 参数指示在链中可以出现在此 CA 之下的最大 CA 数。因此,如果您的 CA 的 pathlen 为零,则它只能用于签署最终用户证书,而不能用于签署更多 CA。

在此处的 openssl 文档中可以找到其他有用的扩展。


推荐阅读