Развертывание WEB интерфейса к VOMS серверу

Для корректной работы нам понадобится:

  • http сервер
  • php интерпретатор
  • модуль для поддержки http сервером протокола https
  • расширение php для работы с mysql
  • набор сертификатов авторизованных для работы с нашим VOSM сервером CA

Устанавливаем необходимые пакеты:

yum install -y httpd php php-mysql mod_ssl

Копируем сертификаты в /etc/grid-security/certificates. Файлы в этом каталоге должны называться в соответствии с хэшом сертификата и оканчиваться на .0 Если под рукой нет файлов в таком виде их можно получить самостоятельно, выполнив следующую команду:

ln -s ca.crt `openssl x509 -hash -noout -in ca.crt`.0

добавляем в /etc/httpd/conf.d/ssl.conf:

<Directory "/var/www/html">
  SSLRequireSSL
  SSLVerifyClient require
  SSLVerifyDepth 5
</Directory>
SSLCACertificationPatth /etc/grid-security/certificates

(здесь и далее подразумевается, что DocumentRoot у нас /var/www/html и php интерфейс мы ставим туда же)

Копируем файлы web интерфейса:

cd /var/www/html
svn co http://svn.nordugrid.org/repos/nordugrid/contrib/pva/trunk .

правим /var/www/html/.htaccess: у нас новый RewriteBase

правим /var/www/html/conf/config.inc:

$pva_install_path="/var/www/html"

Добавляем VO, которыми хотим управлять. Файл конфигурации для каждой VO должен быть расположен в conf/vomses и выглядеть примерно так:

cat conf/vomses/VO4444.conf
<?php
    $dbhost="localhost";
    $dbname="voms_VO4444";
    $dbuser="voms_VO4444";
    $dbpasswd="super_DB_password";
    $vo_port="8445";
    $vo_host="";
    $vo_cert="/etc/grid-security/hostcert.pem";
    $vo_rules_link="http://some.url/for_link_VO_s_Usage_Rules";
?>
  • $dbhost - адрес сервера, на котором крутится voms сервер для данной VO
  • $dbname - имя БД VO
  • $dbuser - пользователь, по которым осуществляется вход в базу
  • $dbpasswd - его пароль
  • $vo_port - порт, который слушает сервер
  • $vo_host - url для VO
  • $vo_cert - сертификат VO
  • $vo_rules_link - по этой ссылке будут переходить пользователи, если захотят просмотреть правила данной VO

В тестовой установке voms сервер находился на том же компьютере, что и web интерфейс, приведенный в примере файл был сгенерирован автоматически и детально разобраться со смыслом полей $vo_host и $vo_cert не удалось

Данные можно взять из /etc/voms/*/ на voms сервере для существующих VO. Для новых vo можно использовать скрипт /var/www/html/addvo. Пример конфигурационного файла для этого скрипта - addvo.conf