【问题标题】:Can openssl prompt for custom fields like it does normal fields?openssl 可以像普通字段一样提示自定义字段吗?
【发布时间】:2021-06-22 06:35:04
【问题描述】:

可以使用 openssl 将字符串值嵌入到 x509 证书中的自定义字段中,如this 所示的答案。给定解决方案的唯一问题是该值被硬编码到配置文件中。理想情况下,我想管理值,就像 openssl 处理国家名称之类的东西,特别是:

  1. 将 OID 定义为对应于 UTF8 字符串值
  2. 根据需要标记 OID
  3. 提供默认值和最小/最大字符长度
  4. 系统会提示管理员添加此值,也可以通过环境变量导入

是否可以使用 openssl 配置文件添加框架并避免硬编码?

【问题讨论】:

    标签: openssl certificate x509


    【解决方案1】:

    对于 Subject DistinguishedName (DN) 中的“字段”是。 请参阅 the man page for req at the heading Distinguished Name and Attribute Section Format。注意提示字段,您没有指定 ASN.1 类型;他们自动使用“DirectoryString”逻辑,如今(5280 后)通常是 PrintableString 或 UTF8String,具体取决于内容中的字符。

    对于扩展,这是您链接的 Q 的主题,不是直接。 在某些 Unix shell 上,您可以使用 shell 脚本 提示输入值并将其作为自动创建的临时文件的一部分提供,该临时文件用作使用进程替换 <( ... ) 的配置文件。

    此外,both 可以从环境变量中读取无提示的主题字段和扩展名,也可以通过 shell 脚本(几乎在每个 shell 中)或在 Windows 上设置 BAT 或 PS1 .见the man page for config

    emailAddress 是一个特例。它可以出现在主题 (DN) 或 SubjectAltName 扩展 (SAN) 中,或两者兼有。 req 可以在证书的主题中放入提示值,但不能在 SAN 中。但是,如果您生成 CSR 而不是证书,然后使用该 CSR 来获取证书——这在链接的 Q 中显然是这种情况,因为它不是自签名的,并且由req -new -x509 生成的证书是——然后CSR创建可以在提议的Subject中放入emailAddress的提示值,如果CSR由openssl ca处理可以将emailAddress从Subject移动或复制到SAN;请参阅 ca 的手册页和引用的 x509v3_config

    【讨论】:

    • 您是否有机会链接到正在使用的<( ...) 的示例?
    • 实际上我使用easy-rsa 我只需要使用$ENV::MYVARNAME 就可以将值放入生成的配置文件中。
    猜你喜欢
    • 2017-10-18
    • 2014-03-23
    • 2016-06-19
    • 1970-01-01
    • 2012-01-16
    • 2015-10-27
    • 1970-01-01
    • 2018-08-26
    • 2018-04-15
    相关资源
    最近更新 更多