缺少PHP $ _SERVER变量的客户端证书详细信息

时间:2015-06-09 23:46:08

标签: php apache ssl client-certificates self-signed

我们正在使用客户端证书对后端网站的用户进行身份验证。

虽然我们在Apache配置文件中使用 SSLVerifyClient require ,但我们还会检查证书中的详细信息以验证用户。我最近从运行旧版Apache的服务器迁移到运行Apache 2.4.7的服务器

在以前的服务器上,PHP $ _SERVER变量的密钥为SSL_CLIENT_S_DN_CN,SSL_CLIENT_S_DN_Email填充了客户端证书中的这些详细信息。在新服务器上,这些都丢失了。我启用了SSL Option + ExportCertData

Apache配置和以前一样,我在下面发布和编辑版本。

<VirtualHost 192.0.0.1:443>

DocumentRoot /dir
ServerName   192.0.0.1


SSLEngine on

<IfModule mod_php4.c>
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .html
</IfModule>
<IfModule mod_php5.c>
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .html
</IfModule>
AddHandler cgi-script .cgi
AddHandler cgi-script .pl
ScriptAlias /cgi-bin   "/dir/cgi-bin"

<DIRECTORY /dir>
OPTIONS  Indexes ExecCGI FollowSymLinks
SSLOptions +StdEnvVars
AllowOverride All
</DIRECTORY>

#below all self-signed
SSLCertificateFile /ssl/cert.pem
SSLCertificateKeyFile /ssl/key.pem
SSLCACertificateFile /ssl/cacert.pem

SSLVerifyClient require
SSLOptions +FakeBasicAuth +ExportCertData +StdEnvVars

SSLVerifyDepth 1
IndexOptions FancyIndexing
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown

</VirtualHost>

我想知道是否有人可以了解如何将这些变量填充到PHP中。在Apache或PHP中的某个地方是否存在我缺少的配置选项?

编辑 - 是/ dir是我们运行它的目录(从实际目录更改为上面)。不确定为什么我在DIRECTORY标签中第二次使用+ StdEnvVars是诚实的:)

0 个答案:

没有答案