В стандартном конфиге drupal 7 для nginx не получается открыть доступ к .well-known для работы LetsEncrypt

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску

При попытке использовать 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