SLL индетификация

DiMoN_TD

Новичок
SLL индетификация

День добрый.
На сервере подняли SSL безопсность. Теперь нужно с помощью php как-то индетифицировать пользователя, у которого есть свой private key. Как это делается, и где можно об этом почитать? Просто излазил пол инета, но конкретики не нашел. Может неправильно задаю поиск, но факт остается фактом - нет подходящей инфы. Вот и решил обратиться к Вам!
 

whirlwind

TDD infected, paranoid
Генерируется клиентский сертификат, на сервере SSLVerifyClient require, в коде сопоставляем сертификат с пользователем, ну например по имейлу $_SERVER['SSL_CLIENT_S_DN_Email'].
 

kruglov

Новичок
Надо писать "идентификация", "идентифицировать". А то, может, потому и найти ничего не можете.
 

DiMoN_TD

Новичок
Я знаю.. просто очепятка =)
Даже если бы я и не правильно написал - гугл бы исправил :)

-~{}~ 07.05.08 12:53:

whirlwind
А где-нибудь более подробно об этом можно почитать?
 

whirlwind

TDD infected, paranoid
О чем подробнее? О том как настроить сервер и сгенерировать сертификат инфы полно. На http://opennet.ru например посмотрите. О том как установить сертификат в браузер смотрите в документации по браузеру. Узнать какие данные из сертификата станут доступны в php можно через var_dump($_SERVER) без всякой документации. Лично я статей, где все это рассматривается в комплексе не встречал.
 

DiMoN_TD

Новичок
whirlwind
О том как настроить сервер - не нужно, это уже сделано.. О том, как сертификат интегрировать в браузер - тоже знаю. А вот как с помощью php прочитать этот сертификат, при обращении пользователя к серверу - не знаю. То, что он хранится в переменной $_SERVER спасибо. сейчас буду тестировать. :)
 

whirlwind

TDD infected, paranoid
Не забудьте в .htaccess или конфиге вебсервера SSLOptions +StdEnvVars
 

MaxiStyle

Новичок
Я делаю так:
if(strlen($_SERVER["SSL_CLIENT_CERT"])>100){
$x = ereg_replace("\n$","",$_SERVER[SSL_CLIENT_CERT]);
$x = "'".ereg_replace("\n","&#&",$x)."'";
$x = ereg_replace("\&#\&$","",$x);
$xx=`readssl.pl $x 2>/dev/null`;
$grp_SSL=ereg_replace("Modulus=","",ereg_replace("\n","",$xx));
}

Перловый скрипт с помощью команды openssl x509 -noout -modulus получает этот самый modulus, который и является идентификатором юзера в БД. Вместо перлового скрипта конечно можно использовать пхп функции, но я б не стал давать доступ пхп на рутовый сертификат.
 
Сверху