|
|||||||
Letsencrypt: webroot или standalone для приложения на node.js?
Время создания: 13.07.2018 15:31
Текстовые метки: Nginx SSL Node.js Цифровые сертификаты
Раздел: SSL
Запись: Velonski/mytetra-database/master/base/1517375588gpm3ht2ux0/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
Не совсем понятно как будет происходит верфикация сертификата и домена для приложения на node.js?
Алексей Ярков @yarkov Vue.js Frontend Developer Я себе пару скриптов написал: #!/bin/bash # Usage: # sudo ~/letsencrypt/addnew.sh domain.ru set -e DOMAIN="$1" sudo letsencrypt certonly -a webroot --webroot-path=/var/www/html -d ${DOMAIN} -d www.${DOMAIN} #openssl dhparam -out /etc/pki/nginx/dhparam.pem 4096 echo -e ' ********************************************************************* NGINX config add: ssl_certificate /etc/letsencrypt/live/${DOMAIN}/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/${DOMAIN}/privkey.pem; ssl_dhparam /etc/pki/nginx/dhparam.pem; ********************************************************************* '
#!/bin/bash # This script renews all the Let's Encrypt certificates with a validity < 30 days # Usage: # run command: # sudo crontab -e # add string # @daily /home/vpsuser/letsencrypt/letsencrypt.cron.sh # run command: # chmod +x /home/vpsuser/letsencrypt/letsencrypt.cron.sh NGINX=$(which nginx) if ! /usr/bin/letsencrypt renew > /var/log/letsencrypt/renew.log 2>&1 ; then echo Automated renewal failed: cat /var/log/letsencrypt/renew.log exit 1 fi ${NGINX} -t && service nginx restart
server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.htm index.php; server_name _; location / { try_files $uri $uri/ =404; } # For LetsEncrypt: https://letsecure.me/secure-web-deployment-with-lets-encrypt-and-nginx/ location ~ /.well-known/acme-challenge { allow all; } }
Ответ написан 12 марта 2017 Нравится 2 1 комментарий Максим Чернятевич @vechnoe Tornado, Django, Postgres, Asyncio, Clojure Непонятно, причем здесь node.js. Вы же ноду все равно будете запускать за nginx. Все сертификаты хранятся в /etc/letsencrypt/live/ -- руками там ничего не нужно делать. Единственное, что вы должны сделать -- сконфигурировать nginx и запустить certbot. # /etc/nginx/templates/certbot.conf location ~ ^/(.well-known/acme-challenge/.*)$ { proxy_pass http://127.0.0.1:9999/$1; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }
upstream api_server { server localhost:8000; } server { listen 192.168.88.245:80; server_name api.site.com; return 301 https://$server_name$request_uri; } server { listen 192.168.88.245:443 ssl; server_name api.dev.drevle.com; client_max_body_size 4G; access_log off; error_log off; ssl_certificate /etc/letsencrypt/live/api.site.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/api.site.com/privkey.pem; include templates/certbot.conf; location /static/ { alias /home/user/api.site.com/static_collected/; access_log off; } location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; # Try to serve static files from nginx, no point in making an # *application* server like Unicorn/Rainbows! serve static files. if (!-f $request_filename) { proxy_pass http://api_server; break; } } }
server { listen 192.168.88.245:80; server_name ui.site.com; return 301 https://$server_name$request_uri; } server { listen 192.168.88.245:443 ssl; server_name ui.site.com; access_log off; error_log off; root /home/user/ui.site.com/site_ui/bin; charset utf-8; ssl_certificate /etc/letsencrypt/live/ui.site.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/ui.site.com/privkey.pem; include templates/certbot.conf; location / { try_files $uri /index.html; } }
sudo certbot --agree-tos --renew-by-default --standalone --standalone-supported-challenges http-01 --http-01-port 9999 --server https://acme-v01.api.letsencrypt.org/directory certonly -d api.site.com
|
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|