【问题标题】:Why do I need a CSR to generate certificate?为什么我需要 CSR 来生成证书?
【发布时间】:2021-04-27 08:07:12
【问题描述】:

我生成了自己的 CA。为什么我需要来自其他网站(例如 facebook.com)的 CSR 来为其生成证书?

CA 签署证书的声明类似于“我,与公钥 xyz 相关的私钥的所有者,批准此证书为有效”。 为什么我们需要 facebook.com 的所有者说“请,公钥 xyz 的所有者,批准我的证书”(生成 CSR)?

我可能遗漏了一些与生成证书的数学公式相关的内容,但我不确定。

【问题讨论】:

    标签: ssl openssl certificate csr


    【解决方案1】:

    注意:这与编程无关,更适合 security.SX。

    从技术上讲,您不需要。要颁发身份证书(唯一常用的类型,尽管还有其他),您需要知道您要颁发的一方的身份和公钥证书,在这种情况下是 facebook。您可能还需要其他信息,例如使用生成的证书的目的、依赖者是谁或他们会是什么样子,这通常会影响您需要放入的信任和/或策略信息证书。

    证书的常用格式 request 又名证书签名请求或由PKCS10 aka RFC2986 定义的 CSR 是表示此信息的标准化方式,它允许需要证书的实体(称为终端实体或 EE ) 和证书颁发机构(称为 CA)进行有效、可靠和准确的通信而不会出错。它的优点是使用与 X.509 相同的格式来表示公钥,它可以处理多种算法,并且可以在不更改标准的情况下扩展以处理未来的新算法,如果设计得当,也无需更改处理它的代码。它还对实体的“可分辨名称”使用相同的格式——尽管现在许多证书用于 HTTPS 或其他使用主题备用名称扩展名的 SSL/TLS 服务器(包含 DNS 名称(s) 而不是 X.500 专有名称),它的价值越来越低,即使在过去,它也需要由 CA 审查,因为它是准确的或至少是可接受的,并且没有误导或欺骗性。

    但是,如果您正在运行 CA,则没有技术原因您不能接受其他形式的此类信息。几十年前,Netscape 发明了SPKAC,它曾经由一些浏览器实现。其他形式仅受您的想象力的限制,以及其他人将或必须做的工作以符合您的发明 - 如果他们有任何动机这样做,他们可能没有。

    【讨论】:

    猜你喜欢
    • 2020-08-12
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    • 1970-01-01
    • 2017-02-24
    • 2021-10-20
    • 2019-04-04
    • 2015-07-06
    相关资源
    最近更新 更多