Правильный способ пометить сертификат x509 идентификатором пользователя, который его создал? - PullRequest
0 голосов
/ 30 мая 2018

У меня есть служба Windows, которая обрабатывает запросы на подпись сертификатов для создания сертификатов.Он также создает самозаверяющие сертификаты (центры сертификации) по запросу пользователей Windows.В любом случае я хочу указать имя учетной записи пользователя (строка учетной записи NT, например, «домен \ пользователь») от пользователя, который сделал запрос на создание сертификата, в готовом сертификате, чтобы было легко отслеживать, кто что создал.

Где лучше всего прикрепить строку учетной записи пользователя в сертификате?Первое, что пришло в голову, - это собственное расширение.Это имеет смысл?Или, может быть, альтернативное поле в теме?Я не знаю, является ли это вообще обычной практикой.

1 Ответ

0 голосов
/ 31 мая 2018

Если вы не привержены использованию формата учетной записи NT, вы можете рассмотреть атрибут emailAddress в сертификате subjectName.Просто измените Test\Bloggs на bloggs@test.

Также есть атрибут pseudonym, который можно использовать.Однако, хотя OpenSSL правильно отображает имя этого атрибута, Windows отображает его как 2.5.4.65, что может быть не тем, что вы хотите.

Теоретически расширение subjectAltName также может использоваться для его хранения.Существует поле otherName, которое можно использовать.Однако OpenSSL отображает сертификат следующим образом:

        X509v3 Subject Alternative Name:
            DNS:test.example.org, othername:<unsupported>

В то время как Windows отображает:

DNS Name=test.example.org
Other Name:
     1.3.6.1.4.1.1=0c 0b 54 45 53 54 5c 42 6c 6f 67 67 73

Очевидно, что ни один из них вам не подходит.

Поэтому будьте прагматичны- либо используйте pseudonym и действуйте в соответствии с тем, как Windows отображает его, либо будьте еще более прагматичны и воспользуйтесь атрибутом OrgnaizationalUnitName (OU) и используйте его.Вы можете иметь несколько OU, поэтому не нужно жертвовать какими-либо текущими OU, которые у вас могут быть.Digicert, Microsoft и Verisign (и, без сомнения, другие) используют OU как дополнительное текстовое поле без какого-либо вреда.Возможно, он не на 100% соответствует стандарту, но работает.

Если вы идете по последнему маршруту и ​​используете ограничения имени, убедитесь, что это дополнительное подразделение является первым в списке при создании запроса на подпись.,То есть он не нарушает порядок ограничения имени.

...