Как использовать политику OpenSSL для подписи сертификата с несколькими подразделениями? - PullRequest
0 голосов
/ 01 января 2019

Я недавно начал настраивать CA с OpenSSL.Корневой ЦС требует, чтобы сертификаты промежуточного ЦС имели поле OU таким образом, чтобы DN промежуточного ЦС было похоже на OU=group.

С этим промежуточным CA я определил политику для CSR, которую он может подписать следующим образом:

[ policy_match ] organizationUnitName=match

CSR, которые я пытаюсь подписать, имеют DNкак OU=group, OU=subgroup, но команда openssl ca -in two_OUs.csr выдает ошибку: The organizationalUnitName field needed to be the same in the CA certificate (group) and the request (subgroup).

Я пытался изменить политику двумя способами:

[ policy_match ] organizationUnitName=match organizationUnitName=supplied

[ policy_match ] 0.organizationUnitName=match 1.organizationUnitName=supplied

Первое успешно, но не требует наличия двух OU.Второй сбой, с жалобой на 0.organizationalUnitName:unknown object type in 'policy' configuration

Если не считать обходной команды ca все вместе в пользу команды x509, как я могу решить эту проблему?

1 Ответ

0 голосов
/ 01 января 2019

Вы не можете напрямую ПРОВЕРИТЬ это. Логика политики openssl ca может проверять только одно вхождение атрибута (точно AVA в RDN) для данного OID.Исходя из того, что я прочитал код, фактически не переходя через него, я думаю, что он должен проверить first , в то время как он кажется последним по значению, которое вы опубликовали;вы отправляете значения из чего-то, что использует соглашение LDAP для отображения DN «назад»?

И, чтобы быть ясным, вы не просто говорите, что DN содержит двух OU в этом порядке, но состоит из полностью из них, без O (OrganizationName)?Если это так, то это, кажется, нарушает правило X.520, как я отметил в своем комментарии к вашему Q - хотя AFAICS это правило не переносится в PKIX или даже LDAP, и оно, конечно, не применяется OpenSSL.

Если вы хотите применить ваше правило, проверив значения обоих OU, вам нужно будет сделать это вне OpenSSL, например, отобразив информацию запроса с помощью openssl req и проверив ее с другой программой(возможно, программа для обработки текста, такая как awk или perl).

Вы можете использовать openssl ca до , выдавать сертификат для имени с повторяющимися атрибутами, подобными этому (также атрибуты вне политики) с помощью опции -preserveDN или preserve=y config.Это делает то же самое, что x509 -req -CA* делает по умолчанию.

...