Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
<Location />
SSLVerifyClient require
# Для совместной работы этих опций
SSLOptions +FakeBasicAuth
SSLUserName SSL_CLIENT_S_DN_CN # необходим патч
AuthName "SVN"
AuthType Basic
AuthUserFile /usr/home/www/svn/svn.reki.ru/.htpasswd_ssl
require valid-user
</Location>
<Location /svn>
DAV svn # Обработчик DAV - svn
# общий каталог для репизиториев
SVNParentPath /usr/home/svn
AuthzSVNAccessFile /usr/home/www/svn/svn.reki.ru/.htauth_svn
require valid-user
</Location>
SetEnvIf User-Agent «.*MSIE.*» nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
</VirtualHost>
Строчки, выделенные красным, указывает серверу, что принимать соединение необходимо только для тех клиентов, которые имеют «правильный», то есть выданный нами сертификат. В строках, выделенных зеленым, мы имитируем авторизацию по паролю. Это необходимо для того, чтобы разрешить доступ к репозиторию SVN только тем пользователям, которым выдан личный сертификат SSL. Для этого мы указываем «файл паролей», находящийся по адресу: /usr/home/www/svn/svn.reki.ru/.htpasswd_ssl. Его содержимое состоит из строки CN (commonName), которую мы задавали при создании пользовательского ключа, и магического заклинания «xxj31ZMTZzkVA», являющегося DES-хэшем слова «password».
stellar:xxj31ZMTZzkVA
oniks:xxj31ZMTZzkVA
Заметим, что поскольку это не настоящая авторизация (по-настоящему мы авторизуемся через сертификат), у всех пользователей один и тот же пароль: «xxj31ZMTZzkVA»: «password».
Синие строки указывают, какой путь будет использоваться для https-доступа к SVN. Для нашего случая это https://svn.reki.ru/svn. Ввиду того, что мы планируем использовать Subversion для нескольких разных проектов одновременно, нам потребуется при помощи директивы SVNParentPath указать общий родительский каталог для всех репозиториев. Все репозитории из каталога /usr/home/svn будут доступны как https://svn.reki.ru/svn/имя_репозитория.
Теперь нам остается только раздать пользователям права доступа к проектам. Для этого используется директива AuthzSVNAccessFile, указывающая файл с описанием прав доступа к тому или иному репозиторию.
Формат файла следующий: