Tomcat: Зарегистрируйте эквивалент SSL_CLIENT_S_DN

В Apache HTTPD возможно создать пользовательские журналы запроса, которые включают значение SSL_CLIENT_S_DN. Так как сайт требует взаимной аутентификации (клиентские сертификаты), это предоставляет хороший контрольный журнал того, кто получает доступ к веб-серверу. Вопрос, мы имеем большое количество хостов кота также и хотели бы сделать то же самое с журналами запроса, созданными котом. Я, может казаться, не нахожу способ сделать это все же. Я посмотрел на клапаны доступа у кота, но, может казаться, не нахожу соответствующую переменную.

Я здесь искал конфигурационную информацию: http://tomcat.apache.org/tomcat-7.0-doc/config/valve.html#Access_Log_Valve

Также это экземпляры кота с коннектором HTTPS, настроенным с clientAuth=True. Они не находятся позади прокси.

Как я могу зарегистрировать клиентский сертификат DN в журнале запроса?

1
задан 28 August 2014 в 20:44
1 ответ

Не тестировался, но можно попробовать с шаблоном в виде :

%{javax.servlet.request.X509Certificate}r

, который должен распечатать сертификат x509, используемый агентом пользователя для аутентификации (по цепочке). При этом используется шаблон %{xxx}r из AccessLogValve, который печатает атрибуты из запроса и tomcat (или сервлета api), которые добавляют этот атрибут (см. исходный код tomcat на github )

Проблема в том, что метод toString() из X509Certificate является довольно многословным. Я уверен, что DN здесь, но есть еще много информации.

Это если вы не хотите прикасаться к java-коду. Если хотите, можно попробовать определить фильтр, который добавит нужный вам атрибут и распечатать его в журнале.

0
ответ дан 4 December 2019 в 08:32

Теги

Похожие вопросы