Мы предоставляем репозиторий SVN под svn.example.org
. Теперь мы хотим добавить сертификат Let's Encrypt для этого домена - однако сейчас есть проблема. Let's Encrypt проверяет домен, помещая файл в подпапку этого виртуального хоста (например, /.well-known/acme-challenge/…
). Let's Encrypt не может проверить этот файл, поскольку Apache обслуживает репозиторий SVN под svn.example.org
.
Теперь вопрос в том, можно ли настроить Apache так, чтобы определенные URL-адреса не обслуживались репозиторием SVN? В настоящее время конфигурация vhost выглядит примерно так:
DocumentRoot /var/www/vhosts/svn.example.org/
<Location />
DAV svn
SVNParentPath /var/www/vhosts/svn.example.org/httpdocs/
AuthType Basic
AuthName "SVN"
AuthUserFile /auth/svn.passwd
Require valid-user
</Location>
Я не знаю, что мне делать, поэтому просьба svn.example.org/.well-known/…
Apache обслуживает иначе.
Я знаю, что это должен быть комментарий, но у меня недостаточно репутации (пока). У вас настроена другая веб-страница? Если да, то простой Alias /.well-known/acme-challenge/ /path/to/your/challenge/directory
должен сделать свое дело.
Обновить: на самом деле это не работает, см. комментарий ниже.
Теперь он работает, с комбинацией комментария @Stephan и RegEx, чтобы исключить .well-known
путь для SVN (https://regex101.com/r/h8kDEc/1):
DocumentRoot /var/www/vhosts/svn.example.org/
Alias /.well-known/ /var/www/vhosts/svn.example.org/httpdocs/.well-known/
<LocationMatch ^/(?!\.well-known).*>
DAV svn
SVNParentPath /var/www/vhosts/svn.example.org/httpdocs/
AuthType Basic
AuthName "SVN"
AuthUserFile /auth/svn.passwd
Require valid-user
</LocationMatch>