如何从Apache Web服务器转发客户端证书CN?

时间:2017-08-18 21:22:13

标签: apache ssl client-certificates

我使用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}没有。

0 个答案:

没有答案