В стандартном конфиге drupal 7 для nginx не получается открыть доступ к .well-known для работы LetsEncrypt
При попытке использовать LetsEncrypt для получения SSL-сертификата для сайта столкнулся со следующей проблемой. В стандартном конфигурационным файле /etc/nginx/sites-enabled/drupal есть директива:
location ~ (^|/)\. { return 403; }
И сколько бы я не добавлял выше или ниже по конфигу
location ~* ^/.well-known/ { allow all; }
С различными конфигурациями location ~ /.well-known/ и прочие, каждый раз при попытке доступа к .well-known/acme-challenge или просто .well-known я получаю ошибку 403.
Как всегда, очень помог drupal.org. Здесь ребята как раз описывают данную ситуацию: https://www.drupal.org/node/2408321
Для того, что бы drupal запрещал доступ ко всем каталогам, имя которых начинается с точки, но оставлял доступ к некоторым, нужна следующая конструкция:
location ~ (^|/)\.(?!well-known) { return 403; }
Так же, ребята рекомендуют в .htaccess для drupal поправить следующую опцию:
<FilesMatch "\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)(~|\.sw[op]|\.bak|\.orig|\.save)?$|^(\.(?!well-known).*|Entries.*|Repository|Root|Tag|Template|composer\.(json|lock))$|^#.*#$|\.php(~|\.sw[op]|\.bak|\.orig\.save)$"> Order allow,deny </FilesMatch>
Про запуск LetsEncrypt и получения сертификатов для https
Про процесс установки клиента LetsEncrypt в ubuntu 14.04 можно посмотреть отличную статью здесь: https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-14-04