Универсальный фрагмент .well-known для Let's Encrypt (Nginx)
Тип статьи:
Авторская
Для удобства рекомендую этот фрагмент разместить в отдельном файле, например /etc/nginx/snippets/well-known.conf
location ~ ^/\.well-known { root /var/www/html; autoindex on; autoindex_format html; autoindex_localtime on; autoindex_exact_size off; try_files $uri $uri/ =404; allow all; }
Пример интеграции внутри блока server
server { listen 80; listen [::]:80; server_name www.domain.tld domain.tld; #Прочий код include snippets/well-known.conf; access_log /var/log/nginx/domain.tld.access.log combined buffer=64k; error_log /var/log/nginx/domain.tld.error.log error; location / { return 301 https://domain.tld$request_uri; } }
Вариант для default (не рекомендуется — вместо этого лучше добавляйте в блок server конкретного сайта):
server { listen 80 default_server; listen [::]:80 default_server; server_name _; #После получения сертификатов впервые рекомендуются отключать, если нужен доступ к серверу только по домену include snippets/well-known.conf; access_log /var/log/nginx/default.log combined buffer=64k flush=5s; error_log /var/log/nginx/default.error.log error; location / { return 444; } }
Не забудьте заранее создать папки для .well-known. Если их нет, то выполните следующие команды (под вариант как на образце):
sudo mkdir /var/www/html/.well-known sudo mkdir /var/www/html/.well-known/acme-challenge sudo chown -R www-data:www-data /var/www/html/.well-known
Где www-data — пользователь, под которым работает Nginx (Для Debian/Ubuntu это www-data. Если у вас другая система — переделайте команду под себя)