Fișierul meu nginx.conf este după cum urmează:
utilizator www-date;
worker_proceses auto;
pid /run/nginx.pid;
includ /etc/nginx/modules-enabled/*.conf;
#include de mai sus aduce următoarele fișiere implicite:
#50-mod-http-image-filter.conf
#50-mod-http-xslt-filter.conf
#50-mod-mail.conf
#50-mod-stream.conf
evenimente {
muncitor_conexiuni 500;
}
http {
includ /etc/nginx/proxy.conf;
limit_req_zone $binary_remote_addr zone=one:10m rate=100r/m;
server_tokens dezactivat;
sendfile activat;
keepalive_timeout 30;
client_body_timeout 10; client_header_timeout 10; send_timeout 10;
în amonte aplicația mea{
server 127.0.0.1:5000;
}
Server {
asculta 443 ssl http2;
asculta [::]:443 ssl http2;
nume_server myapi.com;
ssl_certificate /etc/letsencrypt/live/myapi.com/fullchain.pem; # gestionat de Certbot
ssl_certificate_key /etc/letsencrypt/live/myapi.com/privkey.pem; # gestionat de Certbot
includ /etc/letsencrypt/options-ssl-nginx.conf; # gestionat de Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # gestionat de Certbot
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
#Redirecționează tot traficul
Locație / {
proxy_pass http://myapi;
limit_req zone=o explozie=10;
}
}
}
Am instalat certbot și certbot-nginx (ubuntu).
SSL funcționează bine. Firewall permite doar portul 443.
Încerc să reînnoiesc certificatul certbot cu comanda: sudo certbot renew --dry-run
Acest lucru încearcă să verifice dacă sunt proprietarul domeniului făcând o solicitare către http://myapi.com/.well-known/acme-challenge/2d8dvxv8x9dvxd9v (notă: am obscucat valoarea cheii 2d8dvxv8x9dvxd9v deoarece acesta este ceva privat)
Dar de data asta a expirat. Deci am activat portul 80 și am adăugat următorul element suplimentar de server:
Server {
asculta 80;
nume_server myapi.com;
returnează 301 https://$host$request_uri;
}
Acum comanda de reînnoire certbot (sudo certbot renew --dry-run
) poate reînnoi certificatul. În mod ciudat, chiar dacă elimin acest bloc de server, reînnoirea certbot funcționează bine.
Unde este calea .well-cunoscut/acme-challenge? Este generat/șters din mers?
Când elimin blocul de server pentru portul 80, atunci cum poate nginx să reînnoiască certificatul (pentru că are nevoie de portul 80 pentru provocarea certbot)?