Предмет сертификата X.509

Согласно X.509, сертификат имеет объект атрибута.

C=US, ST=Maryland, L=Pasadena, O=Brent Baccala, OU=FreeSoft,
CN=www.freesoft.org/[email protected]

Это типичное значение объекта. Вопрос в том, каковы типы (или теги) этих атрибутов (C, ST, L, O, OU, CN) и каков их формат?

Ответ 1

IETF PKIX (последняя версия RFC 5280) - это хорошо принятый профиль для сертификатов. Из раздела 4.1.2.4 должны поддерживаться следующие поля (я добавил между круглыми скобками длинное OpenSSL и необязательное короткое имя):

  • страна (countryName, C),
  • организация (organizationName, O),
  • организационная единица (organizUnitName, OU),
  • квалификатор отличительного имени (dnQualifier),
  • название штата или провинции (stateOrProvinceName, ST),
  • общее имя (commonName, CN) и
  • серийный номер (serialNumber).

Там также список элементов, которые должны поддерживаться:

  • населенный пункт (locality, L),
  • название (title),
  • фамилия (имя, фамилия SN),
  • имя (имя, GN),
  • инициалы (инициалы),
  • псевдоним (псевдоним) и
  • квалификатор поколения (generationQualifier).

Значения должны быть закодированы в UTF8String или PrintableString (некоторые из них только в PrintableString, а некоторые исключения в IA5String). Стандарт также имеет максимальную длину для всех типов полей (Приложение A.1)

Из соображений совместимости реализации также должны поддерживать доменные компоненты (domainComponent, DC), закодированные в IA5String. Внимание обращается на электронную почту (emailAddress) и ее кодировку (IA5String, но она считается устаревшей в DN (она должна быть в расширении Subject Alternative Name).