- [Show pagesource]
- [Old revisions]
- [[unknown link type]]
- []
Table of Contents
Let's encrypt or Certbot
How exactly it works.
You have two modes. First is very simple but hard to maintain and sometimes results in stopped web server (apache/nginx/…) and never re-run again. Second is more difficult, but it is the one you want.
First method
works like this: stop webserver, run certbot and listen on :80 to prove you're the owner of the website, start webserver. The trap is obvious. If you try to automatize it into a cron script it could hang on certbot thus never starts webserver again. Here is on-line command
First run
certbot certonly -d www.mydomain.cz --pre-hook="service nginx stop" --post-hook="service nginx start"
Renew
certbot renew --pre-hook="service nginx stop" --post-hook="service nginx start"
Second method
1. You create some dir /var/www/I/like/it/here
2. Add to your website or many websites an exception
Nginx
location /.well-known { root /var/www/I/like/it/here/; }
Be careful, nginx appends the location itself. Here it adds .well-known to the /i/like/it/here/.
Apache2:
alias "/.well-known" /var/www/letsencrypt/.well-known <directory "var/www/letsencrypt"> Allowoverride None Options MultiViews </Directory>
3. When you call certbot with webroot parameter
certbot certonly --webroot -d novyweb.starlab.cz -w /var/www/letsencrypt/
here is the HTTP GET code what the remote server asks for:
GET /.well-known/acme-challenge/Rrc-EMcYmhRM7ETvn8Hs8TcAh9FgHiUAxfkoHEjX7Kc HTTP/1.1 Host: novyweb.starlab.cz User-Agent: Mozilla/5.0 (compatible; Let's Encrypt validation server; +https://www.letsencrypt.org) Accept: */* Accept-Encoding: gzip Connection: close
4. And renew is easy allways the same
certbot renew --webroot -w /var/www/I/like/it/here
DNS auth
/usr/src/certbot-auto certonly --manual --preferred-challenges=dns --email firma@example.cz -d example.com -d *.example.com
Be careful with wsgi proxy
Proxy goes first then aliases. You have to create an exeption for .well-known. Showing just apache2 config line
ProxyPass /.well-known !