在使用 openssl 签名过程中将电子邮件地址从 SAN 复制到 DN

Copy email address from SAN to DN during signing process with openssl

我有一个用户证书的 CSR,其 DN 中没有指定电子邮件地址。但是,电子邮件地址被指定为主题备用名称的扩展名。

现在我想用 openssl 签署此请求,并将电子邮件地址包含在生成的证书的 DN 中,即必须将电子邮件地址从主题备用名称复制到 DN 中的 emailAddress 字段。这甚至可以用 openssl 实现吗?

当您使用 openssl ca 命令签署证书签名请求时,您可以向 X509 证书的主题添加新属性。示例:

openssl ca -cert MyCA.cer -keyfile MyCA.pvk -config MyCA.config -in MyCertificate.req -out MyCertificate.cer -outdir . -subj /CN=MyNewName

但是主题没有电子邮件的指定属性(根据 RFC 5280)。所以你有两个选择:

  1. 使用允许的主题属性之一来保留新电子邮件(例如 CN=me@mycompany.com
  2. SAN 证书扩展包含一个特殊的电子邮件字段,您可以将其放在那里。