{{tag>Brouillon}}
= Notes nginx
PKI, certificat client : http://reload.eez.fr/blog:2016:01:27:nginx_et_ssl_client_certificate
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
location /download {
autoindex on;
charset utf-8;
}
HTTPS
#cat your_domain_name.crt DigiCertCA.crt >> bundle.crt
#cat keys/pkiweb.lan.crt keys/ca.crt > /etc/nginx/ssl/pkiweb.lan.combined.crt
cat keys/pkiweb.lan.crt keys/ca.crt > /etc/nginx/ssl/pkiweb.lan.crt+chain
== Reverse Proxy
Voir https://tenzer.dk/nginx-with-dynamic-upstreams/
''/etc/nginx/sites-available/plop.acme.fr.conf''
server {
server_tokens off;
listen 80;
server_name www.plop.acme.fr plop.acme.fr;
rewrite ^ https://$server_name$request_uri? permanent;
}
server {
server_tokens off;
listen 443 ssl;
server_name www.plop.acme.fr plop.acme.fr;
ssl_certificate /etc/nginx/ssl/plop.acme.fr.crt;
ssl_certificate_key /etc/nginx/ssl/plop.acme.fr.key;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";
access_log /var/log/nginx/plop.log;
error_log /var/log/nginx/plop.err;
#client_max_body_size 0;
#client_body_buffer_size 128k;
location / {
include /etc/nginx/proxy_params;
proxy_pass http://192.168.15.149:8000;
#client_max_body_size 0;
#proxy_request_buffering off;
#proxy_connect_timeout 36000s;
#proxy_read_timeout 36000s;
#proxy_send_timeout 36000s;
}
}
== Pb
=== client intended to send too large body
client_max_body_size 20M;
service nginx reload
== Autres
Nginx letsencrypt
letsencrypt-auto certonly --standalone --email nospam@acme.fr -d acme.fr -d mail.acme.fr
letsencrypt --config-dir=~/etc/letsencrypt/ --logs-dir=~/log/ --work-dir=~/ssl/ certonly --standalone --email nospam@acme.fr -d acme.fr -d mail.acme.fr
letsencrypt --config-dir=$HOME/etc/letsencrypt/ --logs-dir=$HOME/log/ --work-dir=$HOME certonly --standalone --email nospam@acme.fr -d acme.fr -d mail.acme.fr
localtion ~ /.well-known { allow all; }
location ~ /\. { deny all; }
localtion / {
return 301 https://plop.fr$request_uri;
}
listen [::]:443 ssl http2 ipv6only=on;
listen 443 ssl http2;
ssl_certificate /etc/letsencrypt/live/plop.fr/fullchain.pem
ssl_certificate_key /etc/letsencrypt/live/plop.fr/pridvkey.pem
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/plop.fr/fullchain.pem;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 3s;
ssl_session_cache shared:SSL:10m
ssl_session_timeout 24h;
ssl_session_tockets on;
ssl_session_ticket_key /etc/nginx/ssl/ticket.key
ssl_protocols TLSv1.2;
ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
ssl_dhparam /etc/nginx/ssl/dhparam4.pem;
https://github.com/appleboy/letsencrypt-with-nginx/blob/master/nginx.conf
openssl rand 48 -out /etc/nginx/ssl/ticket.key
openssl dhparam -out /etc/nginx/ssl/dhparam4.pem 4096
letsencrypt renew
mkdir /var/www/plop.fr/.well-known/acme-challenge
--rsa-key-size 4096 --webroot-path /var/www/plop.fr/ -d
sudo cerboot --nginx -d belaris.fr -d www.belaris.fr
cp /opt/letsencrypt/examples/cli.ini /usr/local/etc/plop.ini
https://www.nginx.com/blog/using-free-ssltls-certificates-from-lets-encrypt-with-nginx/
https://www.youtube.com/watch?v=tgvuQM0qgCE