Универсальный фрагмент .well-known для Let's Encrypt (Nginx)

Тип статьи:
Авторская

Для удобства рекомендую этот фрагмент разместить в отдельном файле, например /etc/nginx/snippets/well-known.conf

  1. location ~ ^/\.well-known {
  2. root /var/www/html;
  3. autoindex on;
  4. autoindex_format html;
  5. autoindex_localtime on;
  6. autoindex_exact_size off;
  7.  
  8. try_files $uri $uri/ =404;
  9.  
  10. allow all;
  11. }

Пример интеграции внутри блока server

  1. server {
  2. listen 80;
  3. listen [::]:80;
  4. server_name www.domain.tld domain.tld;
  5.  
  6. #Прочий код
  7.  
  8. include snippets/well-known.conf;
  9.  
  10. access_log /var/log/nginx/domain.tld.access.log combined buffer=64k;
  11. error_log /var/log/nginx/domain.tld.error.log error;
  12.  
  13. location / {
  14. return 301 https://domain.tld$request_uri;
  15. }
  16. }

Вариант для default (не рекомендуется — вместо этого лучше добавляйте в блок server конкретного сайта):

  1. server {
  2. listen 80 default_server;
  3. listen [::]:80 default_server;
  4. server_name _;
  5.  
  6. #После получения сертификатов впервые рекомендуются отключать, если нужен доступ к серверу только по домену
  7. include snippets/well-known.conf;
  8.  
  9. access_log /var/log/nginx/default.log combined buffer=64k flush=5s;
  10. error_log /var/log/nginx/default.error.log error;
  11.  
  12. location / {
  13. return 444;
  14. }
  15. }

Не забудьте заранее создать папки для .well-known. Если их нет, то выполните следующие команды (под вариант как на образце):

  1. sudo mkdir /var/www/html/.well-known
  2. sudo mkdir /var/www/html/.well-known/acme-challenge
  3. sudo chown -R www-data:www-data /var/www/html/.well-known

Где www-data — пользователь, под которым работает Nginx (Для Debian/Ubuntu это www-data. Если у вас другая система — переделайте команду под себя)

33
Посещая этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.