Назад | Перейти на главную страницу

Ошибка DomainComponent с openssl

Я создаю простой 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 под Формат Политики.