我已经创建了一个在红帽上运行的 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)位于证书的主题备用名称中。
有什么想法吗?