#apache #authentication #ssl
#apache #аутентификация #ssl
Вопрос:
Я настроил взаимную аутентификацию TLS на моем сервере Apache. Сервер теперь принимает вызовы, только если они указывают сертификат, подписанный центром сертификации, который я добавил в Apache.
Все работает, но теперь мне нужно использовать эту конфигурацию для фактической аутентификации пользователя: Apache используется для прокси (через ajp) запросов к java-приложению. Это java-приложение ожидает имя пользователя в предопределенном параметре заголовка.
Есть ли способ настроить Apache на получение имени пользователя из сертификата и автоматическую установку ожидаемого параметра заголовка?
Комментарии:
1. Сервер теперь принимает вызовы, только если
they
указан сертификат. Кто такоеthey
в вашем случае другое java-приложение? и возможно ли изменить поведение / логику клиента? Также возможно ли изменить поведение сервераjava app is expectin& the username in a header.
Я спрашиваю об этом, потому что вместо передачи имени пользователя в заголовке IETF определила стандартный способ передачи данных клиента через прокси на главный сервер. Ссылка: tools.ietf.or&/id /…
Ответ №1:
Для этого вы можете использовать SSLUserName mod_ssl или mod_auth_basics AuthBasicFake.
Мне никогда не нравилось последнее, потому что вместо того, чтобы просто выступать в качестве поставщика аутентификации, оно заставляет вас устанавливать фиктивный пароль, а затем позволять реальному модулю аутентификации проверять его.
Другим вариантом является этот сторонний модуль, который, как и AuthBasicFake для конкретного сертификата, не содержит пароля: https://&ithub.com/covener/apache-modules/blob/master/mod_authn_cert.c