Я создаю простой PKI для использования TLS с сервером LDAP.
Я создал запрос корневого ЦС и сертификат с этим в файле конфигурации:
[ 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 файл пуст. Я что-то не понимаю в этом процессе?
В вашем файле конфигурации OpenSSL будет опция под названием policy
который указывает на раздел политики. Например policy = [policy_match]
. А [policy_match]
в разделе (обычно сразу под опцией) будет перечислено, какие элементы отличительного имени либо optional
, supplied
или match
. Например:
[policy_match]
countryName=match
organizationName=match
organizationalUnitName=optional
domainComponent=match
Скорее всего, у вас есть domainComponent=match
как показано в примере, это означает, что domainComponent запроса должен быть таким же, как и у сертификата, подписывающего запрос (сертификат CA). Измените это на optional
(его не обязательно указывать в запросе) или supplied
(он должен присутствовать, но не обязательно).
Более подробная информация доступна в Справочная страница OpenSSL CA под Формат Политики.