我必须创建一个生成 CSR 的应用程序。在生成 CSR 时,我们需要填写一些详细信息,例如 CN、OU 等。问题是我必须向其发送 CSR 的认证机构需要 2 个 OU(组织单位)名称。我用谷歌搜索了很多,但使用可以指定 2 个 OU 名称的 openssl 或 java keytool 都找不到任何东西。
有人可以告诉我如何在生成 CSR 时指定 2 个 OU 名称吗?
我必须创建一个生成 CSR 的应用程序。在生成 CSR 时,我们需要填写一些详细信息,例如 CN、OU 等。问题是我必须向其发送 CSR 的认证机构需要 2 个 OU(组织单位)名称。我用谷歌搜索了很多,但使用可以指定 2 个 OU 名称的 openssl 或 java keytool 都找不到任何东西。
有人可以告诉我如何在生成 CSR 时指定 2 个 OU 名称吗?
如果您想通过 CLI 执行此操作,您可以使用 conf 文件或传递 -subj 参数。这是一个带有 -subj 的示例
openssl req -new -newkey rsa:2048 -nodes -subj "/CN=somedomain.com/O=My Corporation/OU=Org Unit 1/OU=Org Unit 2"
您可以添加 ST、L、C 和 OpenSSL 识别的任何其他短名称(以及原始 OID)。
希望这有助于我撞了几个小时才找到它,你也可以试试这个命令
openssl req -new -key username.key -out username.csr -config client/client.csr.cnf
这是client.csr.cnf
[req]
default_bits = 2048
distinguished_name = req_distinguished_name
prompt = no
[req_distinguished_name]
DC= com
0.DC= company
OU= organizations
0.OU= telos
1.OU= telosapac
CN= USERNAMEPATTERN
注意主题属性 0.DC, 0.OU, 1.OU 前面的数字应该有一个数字前缀代表主题条目的索引
Openssl 允许通过在 openssl 配置中附加一个数值来设置相同类型的多个值。
openssl 手册指出:
要指定多个值,请附加一个数字标识符,如下所示:
[extensions]
subjectAltName = @alt_section
[alt_section]
email.1 = steve@example.com
email.2 = steve@example.org
在问题中提到的情况下,您将配置
[req_distinguished_name]
OU.1 = foo
OU.2 = bar