Я запускаю экземпляр apache на локальном сервере и не хочу требовать имя пользователя и соответствующий сертификат для аутентификации / авторизации пользователей для репозитория Subversion. Это моя текущая конфигурация сервера: какие директивы мне нужны, чтобы требовать имя пользователя?
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
ServerSignature On
SSLEngine on
SSLCertificateFile /opt/ssl/ServerCA/server/certs/ServerWeb.crt
SSLCertificateKeyFile /opt/ssl/ServerCA/server/keys/ServerWeb.key
SSLCACertificateFile /opt/ssl/ServerCA/CA/ServerCA.crt
SSLCertificateChainFile /opt/ssl/ServerCA/CA/ServerCA.crt
SSLVerifyClient optional
SSLVerifyDepth 2
<Location /repo>
DAV svn
SVNPath /srv/repos/svn/insec
SSLRequireSSL
AuthzSVNAccessFile /srv/repos/svn/insec/conf/authz
AuthType Basic
AuthName "Subversion repository"
Require valid-user
</Location>
</VirtualHost>
редактировать: добавлен SSLCertificateChainFile, чтобы клиент получал сертификат CA, если он еще не установлен.
редактировать 2: И последнее: как сопоставить конкретный сертификат с именем пользователя?
Хорошо, теперь он работает, для дальнейшей справки здесь мой conf:
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
ServerSignature On
SSLEngine on
SSLCertificateFile /opt/ssl/ServerCA/server/certs/ServerWeb.crt
SSLCertificateKeyFile /opt/ssl/ServerCA/server/keys/ServerWeb.key
SSLCACertificateFile /opt/ssl/ServerCA/CA/ServerCA.crt
SSLCertificateChainFile /opt/ssl/ServerCA/CA/ServerCA.crt
SSLVerifyClient optional
SSLVerifyDepth 2
SSLUserName SSL_CLIENT_S_DN_CN # that line tells apache to use the common name of the client certificate as the username, that's what i was still missing.
<Location /repo>
DAV svn
SVNPath /path/to/repo/
SSLRequireSSL
AuthzSVNAccessFile /path/to/repo/conf/authz
</Location>
</VirtualHost>