我正在创建一个简单的 PKI 以便将 TLS 与 LDAP 服务器一起使用。
我在配置文件中用这个创建了根 CA 请求和证书:
[ ca_dn ]
0.domainComponent = "org"
1.domainComponent = "example"
然后,我在配置文件中用以下内容创建了签名 CA 请求和证书:
[ ca_dn ]
0.domainComponent = "org"
1.domainComponent = "example"
然后我在配置文件中用这个创建了 ldap 请求:
[ server_dn ]
0.domainComponent = "org"
1.domainComponent = "example"
2.domainComponent = "ldap"
但是当我想使用创建证书时
openssl ca -config etc/signing-ca.conf -in certs/ldap.example.org.csr -out certs/ldap.example.org.crt -extensions server_ext
我收到此消息:
The domainComponent field needed to be the same in the CA certificate (example) and the request (ldap)
我可以看到ldap.example.org.key和ldap.example.org.crt文件创建后,.crt文件为空。我是否误解了这个过程中的某些内容?
答案1
您的 OpenSSL 配置文件将有一个名为的选项policy
,它指向策略部分。例如policy = [policy_match]
。一个[policy_match]
部分(通常位于选项下方)将列出 Distinguished Name 的哪些元素是 、optional
或supplied
。match
例如:
[policy_match]
countryName=match
organizationName=match
organizationalUnitName=optional
domainComponent=match
您可能有一个domainComponent=match
如示例中所示的,这意味着请求的 domainComponent 必须与签署请求的证书(CA 证书)的 domainComponent 相同。将其更改为optional
(它不必出现在请求中)或更改为supplied
(它必须出现,但不必匹配)。
更多详情请参阅OpenSSL CA 手册页在下面政策格式。