【问题标题】:Where are the attributes for a CSR config file in OpenSSL standardized?OpenSSL 标准化 CSR 配置文件的属性在哪里?
【发布时间】:2019-09-21 06:37:07
【问题描述】:

互联网上有大量示例说明 OpenSSL CSR 配置文件的外观,但我还没有发现规范/属性实际上是在哪里标准化/声明的。

【问题讨论】:

    标签: openssl csr


    【解决方案1】:

    元:这不是一个真正的编程/开发问题,可能属于服务器故障或超级用户。

    openssl req 使用四种类型的配置来生成 CSR:

    • 控制req 命令本身的操作的选项或设置,例如要生成的密钥的默认大小(对于 RSA)或要写入的密钥文件,以及要在签名中使用的哈希

    • 主题专有名称中的值;这些通常从用户/终端提示,但可以硬编码,或使用选项-subj覆盖

    • CSR中的'attributes'(直接),见rfc2986,它使用与DN相同的语法,可以提示或硬编码

    • 请求的扩展;这些实际上都封装在一个 OID 为 1.2.840.113549.1.9.14 的属性中,但是因为它们对应于证书或 CRL 中的扩展(它们在属性中 not)OpenSSL 单独配置它们

    req 的手册页或在新版本中可能是您​​系统上的 openssl-reqon the web(右侧链接的其他版本)在标题 CONFIGURATION FILE FORMAT 和syntax 用于 DISTINGUISHED NAME AND ATTRIBUTE SECTION FORMAT 的第二组和第三组。

    DistinguishedName(也称为 DN、X501Name 等,它们本身称为属性)的组件和 CSR 的属性(如果有)均由 ASN.1 对象标识符(即 OID)标识,原则上使它们可任意扩展,扩展值也是如此(见下文)。在实践中,通常只有少数或两个 OID 用于 DN,并且由于 CSR 通常用于获取 X.509(或 PKIX)证书,并且该证书通常用于与其他程序或系统互操作( s) 您通常不想使用您将要或可能要与之互操作的程序或系统无法正确理解的 OID。通常,extensionRequest 以外的属性 根本不使用,但当它们被使用时,它们由 CA 处理,通常不会进入证书,因此对互操作性无关紧要。

    PKIX 证书中通常用于 Subject DN 的 OID 在 rfc5280 section 4.1.2.6 中定义,部分参考了 section 4.1.2.4 中对 Issuer 的定义以及 ASN.1 模块中 OID 的详细信息appendix A。当然 PKIX 不是唯一使用 X.509 证书的领域,您可能正在使用 OpenSSL 来支持其他具有不同命名标准的应用领域。

    常用的扩展OID有十几个,专业领域用的可能至少有上百个,但大部分是CA放在证书里的,不能申请;可能只有少数可以有用地放入 CSR 中。 CSR 和证书的 OpenSSL 支持的扩展在 x509v3_config 的手册页中定义(链接在 req 页面中的 req_extensions 下) ,以及指向用于定义“任意”扩展的语法的链接——那些尚未在 OpenSSL 中编码的扩展。对于任意扩展,甚至可能是受支持的扩展,您可能想要定义新的命名 OID,而不是重复不方便且不便于记忆的数字形式; config 的手册页中对此进行了描述。

    PKIX 证书中常用的扩展rfc 5280 section 4.2 中定义,但同样,非 PKIX 证书可能有所不同,并且如前所述,大多数证书扩展在 CSR 中没有意义。

    另请注意,带有-x509 选项的req 命令会生成证书而不是CSR;在这种情况下,会使用主题 DN 和扩展名(未请求实际扩展名)的配置,但不使用属性,并且使用不同的设置来控制命令本身,例如有效时间。

    【讨论】:

      猜你喜欢
      • 2013-05-24
      • 1970-01-01
      • 2016-10-01
      • 2019-07-01
      • 1970-01-01
      • 2017-10-19
      • 2015-05-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多