【问题标题】:Which certificate signing request information is included in a certificate?证书中包含哪些证书签名请求信息?
【发布时间】:2015-03-09 08:01:01
【问题描述】:

如果您创建证书签名请求并包含识别信息(例如,专有名称、公司名称、城镇/城市、电子邮件地址),那么任何此类数据是否包含在证书本身(CA 向您颁发基于 CSR)?

还是只是在同意签署公钥之前被证书颁发机构用来识别您的身份?

有关识别信息的更完整列表,请参阅https://en.wikipedia.org/wiki/Certificate_signing_request 上的表格

【问题讨论】:

  • 颁发的证书除了颁发者和签名信息外,与CSR基本相同。

标签: ssl ssl-certificate csr


【解决方案1】:

这取决于 CA 配置和请求生成代码。例如,使用 Microsoft Enterprise CA 公钥和证书模板名称就足够了。 CA 服务器将查看证书模板属性(包括主题名称)来构造证书。使用 Microsoft Standalone CA 时,必须在请求中明确提供所有必需的扩展、主题字段。 商业 CA 可能需要不同的信息集来构建证书。

这是关于 CA 要求的。请求生成代码可能会放置额外的信息,CA 可能(非必要)使用这些信息来构建证书。例如,certreq.exe 或 CertEnroll COM 接口包括请求发起者信息:用户帐户名、主机名、进程名和基于密钥设置(AT_EXCHANGE 或 AT_SIGNATURE)的默认扩展名(KeyUsage)。

换句话说,这个问题没有明确的答案。一切都取决于客户端和服务器软件。不同的客户端软件可能包含不同的信息。

【讨论】:

    【解决方案2】:

    这取决于 CA,但一个好的 CA 不应该盲目地复制你在 CSR 中的内容。

    当 CA 颁发证书时,它有效地保证了它放入证书中的身份信息和属性。因此,它不应该放置诸如组织名称、位置、电子邮件地址之类的数据,除非它能够从外部验证它们。从安全的角度来看,原则上这是一件好事,而且由于他们通常会让你为额外的属性支付额外费用,所以不让你选择加入的内容也符合他们的商业利益。

    在实践中,这取决于您申请的证书类型(例如,域验证、EV 证书……)。 CA 通常会通过一些管理流程来验证额外的信息,因此 CSR 本身的内容几乎不相关,因为他们将根据他们愿意断言的任何信息来构建 CA。

    例如,对于经过域验证的证书,某些 CA 将构建一个类似 OU=Domain Validated, CN=your.host.name 的 DN,而不管您实际放入 CSR 中的 DN 是什么。他们甚至可能会自动输入几个主题备用名称,带或不带 www. 前缀。

    【讨论】:

      猜你喜欢
      • 2015-01-08
      • 1970-01-01
      • 2012-03-27
      • 2020-01-17
      • 1970-01-01
      • 2021-11-10
      • 1970-01-01
      • 2014-10-12
      • 2011-05-05
      相关资源
      最近更新 更多