PHP $ _SERVER ['SSL_CLIENT_CERT'] está vazio

1

O que estou tentando fazer é passar um certificado de cliente para minha página PHP. Para testes, estou usando curl em um terminal Linux:

curl --cert cert.pem 'https://example.com/test.php'

Em test.php , eu configuro para imprimir o $_SERVER superglobal:

<?php
    print_r($_SERVER);
?>

No Apache, tenho as seguintes opções:

<IfModule mod_ssl.c>
<VirtualHost _default_:443>
    ...
    SSLVerifyClient optional_no_ca
    SSLVerifyDepth  1
    SSLOptions +StdEnvVars +ExportCertData
    ...
</VirtualHost>
</IfModule>

Ao executar meu comando curl , estou vendo que a variável $_SERVER['SSL_CLIENT_CERT'] está vazia:

Array
(
    [HTTPS] => on
    [SSL_TLS_SNI] => example.com
    [SSL_SERVER_CERT] => -- REDACTED --

    [SSL_CLIENT_CERT] =>
    [HTTP_USER_AGENT] => curl/7.22.0 (x86_64-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3
    [HTTP_HOST] => example.com
    [HTTP_ACCEPT] => */*
    [PATH] => /usr/local/bin:/usr/bin:/bin
    [SERVER_SIGNATURE] => <address>Apache/2.2.22 (Ubuntu) Server at example.com Port 443</address>

    [SERVER_SOFTWARE] => Apache/2.2.22 (Ubuntu)
    [SERVER_NAME] => example.com
    [SERVER_ADDR] => 10.1.26.199
    [SERVER_PORT] => 443
    [REMOTE_ADDR] => 10.1.26.241
    [DOCUMENT_ROOT] => /vol1/sites
    [SERVER_ADMIN] => [no address given]
    [SCRIPT_FILENAME] => /vol1/sites/test.php
    [REMOTE_PORT] => 33400
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_PROTOCOL] => HTTP/1.1
    [REQUEST_METHOD] => GET
    [QUERY_STRING] =>
    [REQUEST_URI] => /test.php
    [SCRIPT_NAME] => /test.php
    [PHP_SELF] => /test.php
    [REQUEST_TIME] => 1487370411
)

O que estou perdendo?

    
por Ryan Steffer 17.02.2017 / 23:47

1 resposta

0

Eu me sinto tola! Mas aqui está o que consertou para mim:

Em vez de definir o host virtual como <VirtualHost _default_:443> , ele deve ser definido com um asterisco: <VirtualHost *:443> .

A instalação padrão do Apache tem a linha _default_ , o que é fácil de esquecer até precisar alterá-la!

    
por 21.02.2017 / 18:41