В Apache HTTPD возможно создать пользовательские журналы запроса, которые включают значение SSL_CLIENT_S_DN. Так как сайт требует взаимной аутентификации (клиентские сертификаты), это предоставляет хороший контрольный журнал того, кто получает доступ к веб-серверу. Вопрос, мы имеем большое количество хостов кота также и хотели бы сделать то же самое с журналами запроса, созданными котом. Я, может казаться, не нахожу способ сделать это все же. Я посмотрел на клапаны доступа у кота, но, может казаться, не нахожу соответствующую переменную.
Я здесь искал конфигурационную информацию: http://tomcat.apache.org/tomcat-7.0-doc/config/valve.html#Access_Log_Valve
Также это экземпляры кота с коннектором HTTPS, настроенным с clientAuth=True. Они не находятся позади прокси.
Как я могу зарегистрировать клиентский сертификат DN в журнале запроса?
Не тестировался, но можно попробовать с шаблоном в виде :
%{javax.servlet.request.X509Certificate}r
, который должен распечатать сертификат x509, используемый агентом пользователя для аутентификации (по цепочке). При этом используется шаблон %{xxx}r
из AccessLogValve
, который печатает атрибуты из запроса и tomcat (или сервлета api), которые добавляют этот атрибут (см. исходный код tomcat на github )
Проблема в том, что метод toString()
из X509Certificate
является довольно многословным. Я уверен, что DN здесь, но есть еще много информации.
Это если вы не хотите прикасаться к java-коду. Если хотите, можно попробовать определить фильтр, который добавит нужный вам атрибут и распечатать его в журнале.