我正在尝试将 VMWare 的证书颁发机构 (VMCA) v6.7 设为 FreeIPA 证书颁发机构的受信任子 CA。我应该能够使用交互式工具 (certificate-manager) 或使用 VMWare 的 certool 和配置文件 (certool.cfg) 在 VMCA 中生成证书签名请求。
当然,交互式工具有其吸引力。该工具会提出问题。需要回答以下问题:
Press Enter key to skip optional parameters or use Previous value.
Enter proper value for 'Country' [Previous value : US] :
Enter proper value for 'Name' [Previous value : vcenter.int.demarcohome.com] :
Enter proper value for 'Organization' [Previous value : DeMarco Home] :
Enter proper value for 'OrgUnit' [Previous value : none] :
Enter proper value for 'State' [Previous value : North Carolina] :
Enter proper value for 'Locality' [Previous value : Raleigh] :
Enter proper value for 'IPAddress' (Provide comma separated values for multiple IP addresses) [optional] :
Enter proper value for 'Email' [Previous value : [email protected]] :
Enter proper value for 'Hostname' (Provide comma separated values for multiple Hostname entries) [Enter valid Fully Qualified Domain Name(FQDN), For Example : example.domain.com] : vcenter.int.demarcohome.com
Enter proper value for VMCA 'Name' : vcenter
在 FreeIPA 中,当我尝试签署此 CSR 时,请求未签署,并出现错误 #3009:
invalid 'csr': subject alt name type RFC822Name is forbidden for non-user principals
解码 CSR(https://www.sslshopper.com/csr-decoder.html) 告诉我它包含主题备用名称 (SAN):
email:[email protected],
IP Address:10.71.73.8
vcenter.int.demarcohome.com
错误“名称被禁止用于非用户主体”对我来说有些道理,但不足以为我指明正确的方向。我是否需要通过以不同的方式回答问题来以不同的方式格式化我的 CSR,或者我是否在 FreeIPA 中错误地执行创建下属 CA 的过程?
答案1
X.509 v3 证书扩展中用作主题备用名称 (SAN) 的最常见名称是“DNSName”和“RFC822Name”。名称“RFC822Name”通常是电子邮件地址,而“DNSName”是主机名。
错误“无效的‘csr’:禁止非用户主体使用主题替代名称类型 RFC822Name”说明了一切。当您为非用户主体申请证书时,不能使用名称类型为“RFC822Name”的 SAN。
看起来您正在尝试为证书颁发机构 (CA) 创建证书。在这种情况下,您使用了错误的证书配置文件来创建证书签名请求 (CSR)。我建议您与您的 PKI 管理员交谈,并向他们解释您想要为 CA 创建 CSR,并询问他们要使用哪个配置文件。不同类型的证书需要不同的配置文件,因为证书中使用的扩展名不同。
您可以在此处找到有关如何将 VMCA 设为中间 CA 的更多信息:
在这里您可以看到 CSR 将 VMCA 变为中级 CA 的要求:
答案2
解决此问题最简单的方法是更新模板,使其不再要求输入电子邮件地址。
基本模板在这里:
/usr/lib/vmware-vmca/share/config/certool.cfg
如果您已经运行该工具,系统将使用以下副本:/var/tmp/vmware/certool.cfg
您可以将文件更改为如下所示:
#
# Template file for a CSR request
#
# Country is needed and has to be 2 characters
Country = US
Name = CA
Organization = VMware
OrgUnit = VMware Engineering
State = California
Locality = Palo Alto
IPAddress = 127.0.0.1
#Email = [email protected]
Hostname = server.acme.com
这将创建一个可由 IPA 签名并可由 vcenter 使用的 CSR。