Както може би забелязахте последните 2 дни блога ми не се отваряше и причините бяха две:
- Let’s Encrypt renewal-а не беше минал тримесечния си ъпдейт на сертификатите;
- Понеже използвам HSTS нямаше и опция да видите блога нищо, че е с невалиден сертификат.
И това естествено по празниците, когато нямах достъп до компютър :)
Ето и какви бяха причините за това, че на nedko.info не минаха сертификатите, но на останалите 7-8 сайта, които хоствам минаха без проблеми:
- При опит за certificate renew получавах следната грешка:
Failed authorization procedure. www.nedko.info (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://www.nedko.info/.well-known/acme-challenge/PdzPmGSbFd1XOOqa0LshcRGxqUАGHАUj3qМNamp1-Yw: "<!DOCTYPE html> <html lang="en-GB"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial" IMPORTANT NOTES: - The following errors were reported by the server: Domain: www.nedko.info Type: unauthorized Detail: Invalid response from http://www.nedko.info/.well-known /acme-challenge/PdzPmGSbFd1XOOqa0LshcRGxqUАGHАUj3qМNamp1-Yw: "<!DOCTYPE html> <html lang="en-GB"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial" To fix these errors, please make sure that your domain name was entered correctly and the DNS A record(s) for that domain contain(s) the right IP address.
Проблема е, че при опит за достъп по http (близко до ума, но на мен ми отне време да се досетя, че Let’s Encrypt callback-а е по http, а не по https) при misconfiguration горния линк http://www.nedko.info/.well-known
/acme-challenge/PdzPmGSbFd1XOOqa0LshcRGxqUАGHАUj3qМNamp1-Yw пренасочваше към друг от моите домейни.
2. Започнах да преглеждам къде ми е проблема с това пренасочване и реших да изключа напълно port 80 поддръжката (http) макар и да имам redirect 301 в случай, че имам request по http.
Решението ми беше да спра изцяло поддръжката на http през vhosts. Става съвсем лесно с коментар или изтриване на удебеления ред:
#listen 80;
listen 443 ssl;
След тази промяна и рестартиране на nginx (service nginx restart) успях да стартирам процеса по преиздаването на сертификата успешно със следните редове:
letsencrypt certonly -a webroot --webroot-path=/var/www/nedko.info/ -d nedko.info -d www.nedko.info
където пътя до сайта е в директория /var/www/nedko.info/
Ако имате проблеми с намирането на директорията /.well-known/acme-challenge/ можете да я създадете наново като:
- Проверите дали директорията съществува (под Линукс точката пред директория или файл се счита за скрит файл/директория) с
ls -lah /var/www/nedko.info/
Ако не съществува можете да я създадете със следната команда и дадете съответните правомощия:
mkdir /var/www/nedko.info/.well-known/acme-challenge/ && chmod 755 /var/www/nedko.info/.well-known/acme-challenge/
И изпълянвате по-горната команда за renew на сертификатите.
Ако не стане пишете в коментарите и ще го гледаме заедно.