Let's Encrypt и ошибка unauthorized Error с Nginx

12 апреля 2016

Сервер Ububntu с Apache и NGINX. Необходимо получить сертификат от Let's Encrypt используя команду:

./letsencrypt-auto certonly -a webroot --agree-tos --renew-by-default --webroot-path=/home/user/web/sitename.ru -d sitename.ru

В ответ получем ошибку:

Failed authorization procedure. sitename.ru (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://domain.com/.well-known/acme-challenge/WGxhr3iZhB23UIbOqyfQp0z-uadvqKShPADfDgCsV2E [X.X.X.X]: 403

IMPORTANT NOTES:  
 - The following 'urn:acme:error:unauthorized' errors were reported by
   the server:

   Domains: sitename.ru
   Error: The client lacks sufficient authorization

Она говорит нам что нет доступа к папке. Лечится так, находим конфиг файл nginx (в vesta она находится в user/web/conf) и добавляем в нужный сайт следующие строки:

location ^~ /.well-known/acme-challenge/ {
  default_type "text/plain";
  root /home/user/web/sitename.ru;
}

location = /.well-known/acme-challenge/ {
  return 404;
}

Пробуем еще раз сгенериовать сертификат и должно все быть ок.