Tệp nginx.conf của tôi như sau:
dữ liệu www của người dùng;
worker_processes tự động;
pid /run/nginx.pid;
bao gồm /etc/nginx/modules-enabled/*.conf;
# bao gồm ở trên mang đến các tệp mặc định sau:
#50-mod-http-image-filter.conf
#50-mod-http-xslt-filter.conf
#50-mod-mail.conf
#50-mod-stream.conf
sự kiện {
worker_connections 500;
}
http {
bao gồm /etc/nginx/proxy.conf;
limit_req_zone $binary_remote_addr zone=one:10m rate=100r/m;
server_tokens tắt;
gửi tệp trên;
keepalive_timeout 30;
client_body_timeout 10; client_header_timeout 10; gửi_thời gian chờ 10;
thượng nguồn myapp{
máy chủ 127.0.0.1:5000;
}
người phục vụ {
nghe 443 ssl http2;
nghe [::]:443 ssl http2;
server_name myapi.com;
ssl_certificate /etc/letsencrypt/live/myapi.com/fullchain.pem; # được quản lý bởi Certbot
ssl_certificate_key /etc/letsencrypt/live/myapi.com/privkey.pem; # được quản lý bởi Certbot
bao gồm /etc/letsencrypt/options-ssl-nginx.conf; # được quản lý bởi Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # được quản lý bởi Certbot
add_header X-Frame-Options TỪ CHỐI;
add_header X-Content-Type-Options nosniff;
#Chuyển hướng tất cả lưu lượng truy cập
địa điểm / {
proxy_pass http://myapi;
giới hạn vùng_req = một cụm = 10;
}
}
}
tôi đã cài đặt certbot và certbot-nginx (ubuntu).
SSL đang hoạt động tốt. Tường lửa chỉ cho phép cổng 443.
Tôi đang cố gia hạn chứng chỉ certbot bằng lệnh: sudo certbot gia hạn --dry-run
Điều này cố gắng xác minh rằng tôi sở hữu miền bằng cách yêu cầu http://myapi.com/.well-known/acme-challenge/2d8dvxv8x9dvxd9v (lưu ý: Tôi đã làm xáo trộn giá trị khóa 2d8dvxv8x9dvxd9v vì đây là giá trị riêng tư)
Nhưng lần này hết rồi Vì vậy, tôi đã bật cổng 80 và thêm mục máy chủ bổ sung sau:
người phục vụ {
nghe 80;
server_name myapi.com;
trả lại 301 https://$host$request_uri;
}
Bây giờ lệnh gia hạn certbot (sudo certbot gia hạn --dry-run
) có thể gia hạn chứng chỉ. Thật kỳ lạ, ngay cả khi tôi xóa khối máy chủ này, quá trình gia hạn certbot vẫn hoạt động tốt.
Đường dẫn .well-known/acme-challenge ở đâu? Nó có được tạo/xóa khi đang di chuyển không?
Khi tôi xóa khối máy chủ cho cổng 80, thì nginx có thể gia hạn chứng chỉ như thế nào (vì nó cần cổng 80 cho thử thách certbot)?