ssl - 如何允许/限制证书颁发另一个证书?
问题描述
如何制作不能签署其他证书的叶子证书?ica 是否有任何定义它可以颁发其他证书的内容?
希望有人可以提供使用 openssl 的示例。
解决方案
正如@Steffen 在评论中提到的,CA 可以在具有 v3 扩展名时颁发证书basicConstraints=CA:true
。即使没有它,根 CA 也可以工作,因为颁发者与主体相同,这隐含地暗示它是一个 CA。
从文档:
基本约束。
这是一个多值扩展,指示证书是否为 CA 证书。第一个(强制)名称是 CA,后跟 TRUE 或 FALSE。如果 CA 为 TRUE,则可以包含一个可选的 pathlen 名称,后跟一个非负值。
为确保仅在链下发布一定数量的证书,使用了另一个扩展:pathlen:1
.
从文档:
pathlen 参数指示在链中可以出现在此 CA 之下的最大 CA 数。因此,如果您的 CA 的 pathlen 为零,则它只能用于签署最终用户证书,而不能用于签署更多 CA。
在此处的 openssl 文档中可以找到其他有用的扩展。
推荐阅读
- javascript - 如何在 vuetify 的 v-data-table 中显示带有嵌套 v-data-table 的数组中的 JSON 数组?
- r - 检查是否在不同的列中找到名称以及哪一个
- django - 无法将两个字段相互链接,然后将它们实现到另一个模型
- python - 如何修复“AttributeError:'str'对象没有属性'items'”
- javascript - GLTF 实体动画在 0.9 帧上结束后的入口点。*
- mongodb - 如何编写用于搜索/过滤的 mongoldb 查询
- objective-c - NSInvocation 的多个参数在 iOS 13.0 beta 的 Action Extension 中不起作用
- javascript - puppeteer 中是否有类似于 TestNG 中的 dataProvider 的 mocha 功能?
- php - 从另一个 php 文件调用函数时返回数组的最后一项
- resize - 如何在保持原始媒体大小的同时调整 Latex(media9 包)中的海报图像大小?