Я создал обратный прокси-сервер apache 2.2, работающий в красной шляпе.
Этот прокси-сервер должен будет принять сертификат клиента, извлечь необходимую информацию и передать ее приложению, работающему локально в заголовке.
NameVirtualHost *:443
<VirtualHost *:443>
ServerName SearchHead
SSLEngine on
SSLVerifyClient require
SSLVerifyDepth 5
SSLCACertificateFile /etc/pki/ca-chain.cert.pem
ProxyPass / http://127.0.0.1:8000/ retry=0
ProxyPassReverse / http://127.0.0.1:8000/
RequestHeader set SSL_CLIENT_S_DN "%{SSL_CLIENT_S_DN_CN}s"
RequestHeader edit SSL_CLIENT_S_DN CN=([^,]+) $1
<Proxy *>
AddDefaultCharset off
Order deny,allow
Allow from all
</Proxy>
</VirtualHost>
Согласно документации: https://httpd.apache.org/docs/2.2/mod/mod_ssl.html Я не вижу ничего, что позволило бы мне это сделать. К сожалению, мы не можем поддерживать решения на основе php или что-либо, что не поддерживается в Red Hat Enterprise Linux 6 Repos.
Состояния промежуточного программного обеспечения DoD http://www.cac.mil/docs/DoD-CAC-Middleware-Requirements-Release-4.0_v1.01_16Nov2012.pdf Вход со смарт-картой (1.3.6.1.4.1.311.20.2.2), который находится в альтернативном имени субъекта сертификата.
Есть предположения?