Я не могу получить на причале-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, а затем доверять этим заголовкам некоторую настраиваемую логику.