Как я могу определить, какой SSL-сертификат клиента использует соединение в mod_perl?

Я пишу веб-службу на Perl, которая будет работать под SSL (HTTPS) с клиентскими сертификатами. Как определить, какой сертификат используется клиентом в текущем соединении, чтобы отфильтровать ненужные?

Примечание: веб-сервис запускается как скрипт mod_perl.


person Sklivvz    schedule 30.03.2009    source источник
comment
Будет ли это скрипт cgi или mod_perl, или вы сами собираетесь открывать сокет прослушивающего сервера?   -  person innaM    schedule 30.03.2009
comment
это будет скрипт mod_perl. Я думал об использовании SOAP::WSDL::Server::Mod_Perl2   -  person Sklivvz    schedule 30.03.2009


Ответы (1)


Нашел ответ на PerlMonks:

Используйте модуль Apache::SSLLookup.

  sub handler {
    my $r = Apache::SSLLookup->new(shift);
    my $request_is_over_ssl = $r->is_https;
    my $certificate = $r->lookup_var('SSL_CLIENT_CERT');

    ...
  }

Ссылка на среду mod_ssl здесь.

person Sklivvz    schedule 30.03.2009