我使用Apache作为反向代理来重定向所有请求。我需要在请求中将客户端证书详细信息转发给我的应用程序。出于测试目的,我只是尝试将CN附加到转发的请求。这是我的conf
文件(简化):
<VirtualHost _default_:443>
ServerName localhost
DocumentRoot /var/www/html
SSLEngine on
SSLCertificateFile /etc/ssl/certs/CA.pem
SSLCertificateKeyFile /etc/ssl/private/CA.key
SSLVerifyClient require
SSLVerifyDepth 1
SSLOptions +ExportCertData +StdEnvVars
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
RewriteEngine on
RewriteRule ^ https://%{SERVER_NAME}:8443/myapp?cn=%{SSL_CLIENT_S_DN_CN}
</VirtualHost>
如果我导航到https://localhost
浏览器要求提供证书,那么我会被重定向到:
https://localhost:8443/myapp?cn=
所以它似乎没有阅读SSL_CLIENT_S_DN_CN
。我错过了什么?
编辑:如果我设置了请求标题,例如:
RequestHeader set XYZ %{SSL_CLIENT_S_DN_CN}e
我也没有在开发工具中看到它。所以我的配置一定有问题。 %{SERVER_NAME}
有效,%{SSL_CLIENT_S_DN_CN}
没有。