Я работаю над проектом веб-службы, который требует, чтобы клиенты, подключающиеся к моей службе, проходили аутентификацию через сертификаты X.509 как часть согласования TLS взаимной аутентификации.В дополнение к привязке сертификата клиента к определенной цепочке доверия PKI, мои требования диктуют необходимость проверки определенных значений в сертификате.В частности, DN субъекта должен содержать одно OU с предопределенным значением, а сертификат должен содержать одно subjectAltName с другим предопределенным значением в формате URI.
Я использую Apache httpd 2.4.6 в системе CentOS 7,и я могу довольно легко удовлетворить большинство этих требований с помощью стандартных директив конфигурации Apache, использующих общие переменные mod_ssl, с одним заметным исключением: мне не удается найти переменную, которая позволяет мне получить доступ к значению subjectAltName в формате URI.Просматривая документацию по mod_ssl, найденную здесь:
https://httpd.apache.org/docs/2.4/mod/mod_ssl.html
Я вижу переменные для следующих форматов subjectAltName:
SSL_CLIENT_SAN_Email_n - записи расширения subjectAltName сертификата клиента типа rfc822Name
SSL_CLIENT_SAN_DNS_n - записи расширения subjectAltName сертификата клиента типа dNSName
SSL_CLIENT_SAN_OTHER_msUPN_n - записи расширения subjectAltName сертификата клиента типа otherName, форма имени участника-пользователя Microsoft (OID 1.3.6.1.4 *.311)1014 *
Учитывая, что URI является отличным и действительным форматом для значений subjectAltName, как определено в разделе 4.2.1.6 RFC 5280 (X.509 / PKI), я не понимаю, почему mod_ssl не будет предоставлять доступ к subjectAltNames вэтот формат.Есть ли переменная, обеспечивающая эту функциональность, которую я просто не вижу в документации?