使用 CA 签署的另一个证书签署证书

2024-01-11

是否可以使用由 CA 签名的证书作为其他证书的 CA 来签署新证书,并且仍然由根 CA 验证它们?

例子:

# create new key
openssl genrsa -des3 -out server.key 2048
openssl req -new -key server.key -out server.csr
....
# send csr to ca for signing
....
# now what if we make a new key and sign it with the received crt?
openssl genrsa -des3 -out newkey.key 2048
openssl req -new -key newkey.key -out newkey.csr
openssl x509 -req -in newkey.csr -CA server.crt -CAkey server.key -CAcreateserial -out newcert.crt -days 500

为什么不能这样做?我尝试将这个新证书用于服务,但浏览器抱怨该证书缺少 CA 链。基本上我想使用一个为域签名的证书,并使用域证书作为子域的 CA 为子域创建新证书。这个流程是如何设计的?


一个证书是否可以用来签署另一个证书是由该证书的基本约束字段定义的。当您向 CA 提交 CSR 时,CA 返回的证书应在基本约束字段中指定该证书不能用于签署其他证书。

否则,这将为任何人为任何网站创建虚假证书打开大门。例如,我可以为 mysite.com 创建 CSR,获取由 VeriSign 等 CA 签名的证书,然后为 www.paypal.com 创建 CSR,并使用 mysite.com 的证书为 www.paypal 的证书签名。 com.然后,我将获得 www.paypal.com 的有效证书。但是,我不是 paypal.com。

尽管如此,早期浏览器中的许多早期 SSL 实现甚至 OpenSSL 的某些早期版本都没有检查证书链中证书的基本约束字段,因此这是一个可以利用的漏洞。安全研究员 Moxie Marlenspike 积极引起公众的注意,迫使浏览器制造商解决这个问题。看http://www.thoughtcrime.org/ie-ssl-chain.txt http://www.thoughtcrime.org/ie-ssl-chain.txt了解更多信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 CA 签署的另一个证书签署证书 的相关文章

随机推荐

  • 从数组中获取大小为 n 的所有组合的算法(Java)? [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 现在我正在尝试编写一个函数 它接受一个数组和一个整数 n 并给出每个大小 n 组合的列表 因此是 int 数组的列表 我
  • 获取报警信息

    我正在实现一个应用程序 其中必须显示警报信息 日期 时间 如果可用 有谁知道如何获取报警信息吗 非常感谢 结果 最后 我可以通过上面Curious的回答来检索警报信息 此外 当我在 packages apps 中探索 Deskclock 应
  • ipad 应用程序异常退出并显示信号 11:分段错误:11

    我的应用程序异常退出 信号为 11 我不知道这意味着什么 没有崩溃日志 调试器也没有显示错误 该应用程序刚刚消失 我得到以下日志 Apr 27 21 31 31 unknown Apollo 1408
  • 如何在编译时保存指向成员的指针?

    考虑下面的代码 template
  • 反应选择禁用选项

    我在禁用 React Select 元素内的大型列表中的某些选项时遇到问题 我有大约 6 500 个选项被加载到选择中 起初我遇到了搜索功能滞后的问题 但后来我开始使用react select fast filter options来解决这
  • 在 PHP 中写入文本文件时换行符不起作用

    我有以下测试脚本 但是 当运行并使用记事本打开时 数据以单行形式返回 没有中断 如下所示 Floppy Jalopy 疯狂盒子 Pointy Pinto 疯狂盒子 我找不到 疯狂盒子 的合适字符 但它确实是一个疯狂的盒子 是什么赋予了 最好
  • 仅在使用 cx_freeze 时出现 UnicodeDecodeError

    我收到错误 UnicodeDecodeError ascii codec can t decode byte 0xa0 in position 7338 ordinal not in range 128 一旦我尝试在使用 cx freeze
  • 在项目中声明全局变量并在xslt中使用它

    对于 XSLT 方面的疑问 我会寻求您的指导 在我当前的项目中 需要创建许多 XSLT 文件 在这些转换中 执行的共同步骤很少 例如更改输入 xml 中元素值的大写 我当前在 XSLT 中使用以下代码 因此如果创建了 50 个 XSLT 则
  • F# 正向管道从 int 转换为 bigint

    我对 F 相当陌生 遇到了这种情况 希望有人能解释为什么我的编译器不喜欢这些代码 如果在 F 中我执行以下操作 let FloatToInt 10 0 gt int let IntToFloat 10 gt float 一切都很好 数字被转
  • Python 中基于字符串的枚举

    封装我正在使用的状态列表enum模块 from enum import Enum class MyEnum Enum state1 state1 state2 state2 state MyEnum state1 MyEnum state1
  • __attribute__((__interrupt__, no_auto_psv)) 是做什么的?

    void attribute interrupt no auto psv T1Interrupt void 5 Hz attribute 指令或宏来自 GCC 但是 interrupt and no auto psv不是 它特定于硬件 那么
  • 检测何时触发position:sticky 的事件

    我正在使用新的position sticky info http updates html5rocks com 2012 08 Stick your landings position sticky lands in WebKit 创建类似
  • 如何创建 Java 自定义 Web 控件?

    这个问题最初出现在我的脑海中 我可以在 Servlet 中使用 AWT 控件吗 这将显示我对这个问题的无知 我是 JAVA 技术的新手 但经过一些阅读后 我似乎了解 AWT 控件直接连接操作系统 GUI 元素 因此无法在 Servlet 中
  • 对齐 CSS 网格中的列

    我应该设置哪些 CSS 属性 以便各列相互缠绕 忽略水平相邻列的高度 失败的尝试 我正在尝试这样做display grid 但它的行为不符合我的要求 一个例子 header height 2 0rem background PeachPuf
  • 通过 PowerShell/cmd 调用 Linux 应用程序的 Windows 子系统 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 随着最近推出的 Windows 内部版本 14316 我们拥有了适用于 Linux 的 Windows 子系统 测试版 它允许在 Wind
  • 设置超时时 JavaScript 闭环问题

    我在教程中找到了一些示例 说这是规范的示例 for var i 1 i lt 5 i setTimeout function console log i i i 1000 现在 我明白了 闭包将当前范围传递给函数 我假设它应该输出 1 2
  • AWS ELB - 多VPC负载均衡

    我正在开发一个项目 其中任务之一是为远程 VPC 中的实例提供 AWS ELB 服务 AWS ELB 位于 VPC A 中 实例位于 VPC B 中 我最初的回答是 否 因为 ELB 是负载均衡器 而不是路由器 文档和使用 AWS ELB
  • 如何在不打开网络浏览器的情况下在spotipy中进行身份验证?

    我尝试了标准方法 主页上有描述 但我需要在没有网络浏览器的情况下登录 我怎样才能做到这一点 您可以使用 Spotify 的 python 库之一 例如 https github com plamere spotipy https githu
  • setMicrophoneMute() 如何工作?

    我一直在尝试使用Android的AudioManager setMicrophoneMute 没有取得多大成功 也就是说 无论我做什么 它都拒绝将麦克风静音 我在网上搜索了一些线索 发现了一些报告类似经历的参考资料 AudioManger
  • 使用 CA 签署的另一个证书签署证书

    是否可以使用由 CA 签名的证书作为其他证书的 CA 来签署新证书 并且仍然由根 CA 验证它们 例子 create new key openssl genrsa des3 out server key 2048 openssl req n