Назад | Перейти на главную страницу

Сохранение данных сертификата клиента X509 от обратного прокси-сервера apache2 до пристани

Я не могу получить на причале-9.3.14 данные сертификата клиента X509, которые отправляются в apache2 и перенаправляются через ProxyPass директива.

<Location /X509>
    SSLVerifyClient require
    SSLVerifyDepth 5
    SSLOptions -StdEnvVars +ExportCertData
# most of the followings are useless 
    RequestHeader set SSL_CLIENT_S_DN "%{SSL_CLIENT_S_DN}s"
    RequestHeader set SSL_CLIENT_I_DN "%{SSL_CLIENT_I_DN}s"
    RequestHeader set SSL_SERVER_S_DN_OU "%{SSL_SERVER_S_DN_OU}s"
    RequestHeader set SSL_CLIENT_VERIFY "%{SSL_CLIENT_VERIFY}s"
    RequestHeader set SSL_CLIENT_V_START "%{SSL_CLIENT_V_START}s"
    RequestHeader set SSL_CLIENT_V_END "%{SSL_CLIENT_V_END}s"
    RequestHeader set SSL_CLIENT_M_VERSION "%{SSL_CLIENT_M_VERSION}s"
    RequestHeader set SSL_CLIENT_M_SERIAL "%{SSL_CLIENT_M_SERIAL}s"
    RequestHeader set SSL_CLIENT_CERT "%{SSL_CLIENT_CERT}s"
    RequestHeader set SSL_CLIENT_VERIFY "%{SSL_CLIENT_VERIFY}s"
    RequestHeader set SSL_SERVER_M_VERSION "%{SSL_SERVER_M_VERSION}s"
    RequestHeader set SSL_SERVER_I_DN "%{SSL_SERVER_I_DN}s"
    RequestHeader set SSL_SERVER_CERT "%{SSL_SERVER_CERT}s"
</Location>

Указанное выше расположение на apache2 эффективно при запросе сертификата клиента X509 для пользователя, но эта информация не пересылается на причал.

Я считаю, что это невозможно. Поскольку Jetty-9.3 не поддерживает mod_ajp, apache2 необходимо прокси-запрос на proxy_http, это, конечно, http канал.

Данные сертификата пользователя X509 «отклеиваются» при переходе с https из http.

Вот и все.

Максимум, что вы можете сделать, это повернуть SSLContext данные в заголовки HTTP, а затем доверять заголовкам некоторую настраиваемую логику.