FreeIPA外部CA(中间CA)

dri*_*riz 4 openssl ca ssl-certificate

我们正在使用现有的CA进行freeipa安装。在安装过程中,将生成CSR,并且必须由CA签名以创建证书。该证书必须具有

X509v3基本约束:CA:TRUE

我已经研究了大约一个小时,现在我不知所措。通常,我这样签署CSR

openssl x509 -req -in ipa.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out ipa.pem
Run Code Online (Sandbox Code Playgroud)

这可行,但是CA:TRUE不存在。我尝试这样做:

openssl x509 -req -in ipa.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -extensions v3_ca -out ipa.pem
Run Code Online (Sandbox Code Playgroud)

它产生的功能与原始功能相同。

我可以看到生成的密钥从我的openssl.cnf中提取信息,但是它忽略了下面的extensions语句。

[ v3_ca ]
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer
basicConstraints = CA:true
Run Code Online (Sandbox Code Playgroud)

是否有人对我需要做什么或可以提供哪些其他信息有任何想法?谢谢!

旁注:我没有gui或gui工具,这些都来自命令行。CSR是由IPA软件生成的,我不是手动创建它。

这是IPA的说明:

为身份管理服务器生成的CA签名证书必须是有效的CA证书。这要求将“基本约束”设置为CA = true,或者在签名证书上设置“密钥用法扩展”以允许它对证书进行签名。

小智 5

您可以使用“ -extfile”命令使openssl x509读取特定的配置。

我建议您进行一个新配置,将其命名为foo.cnf。在里面放:

subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer:always
basicConstraints = CA:true
Run Code Online (Sandbox Code Playgroud)

现在,只需稍作更改即可运行命令:

openssl x509 -req -in ipa.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -extfile foo.cnf -out ipa.pem
Run Code Online (Sandbox Code Playgroud)

您现在应该拥有带有CA:true的证书。