code

Налаштування HTTPS для Nginx

Last updated: 21.02.2026
Views: 121

HTTPS означає Hypertext Transfer Protocol Secure, і це безпечна версія HTTP, протоколу, який використовується для зв’язку між вашим браузером і веб-сайтом. HTTPS шифрує дані, що надсилаються та отримуються, забезпечуючи безпеку та конфіденційність зв’язку.

Деякий час тому я використовував VPS для деяких своїх проектів. Мені потрібно було запустити PHP і NodeJS на сервері та налаштувати домени для цих проектів. Проксі-сервером, на якому налаштовано домени, було обрано Nginx. Операційною системою на сервері була Ubuntu. Щоб домени працювали, необхідно налаштувати HTTPS. Для створення сертифікатів SSL був обраний безкоштовний центр сертифікації Let’s Encrypt.

Отримати сертифікат

sudo letsencrypt certonly -a webroot --webroot-path=/var/www/site.com/public_html -d site.com -d www.site.com

Оновити сертифікат

sudo letsencrypt renew

Весь конфігураційний файл nginx

server {
 
    listen 80 ;
    server_name  site.com.ru www.site.com;
    return 301 https://$server_name$request_uri;
 }
 
server {
 
  # SSL configuration
 
  listen 443 ssl http2;
  listen [::]:443 ssl http2;
  server_name  site.com www.site.com;
 
  ssl_certificate /etc/letsencrypt/live/site.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/site.com/privkey.pem;
  ssl_trusted_certificate /etc/letsencrypt/live/site.com/chain.pem;
 
  add_header Content-Security-Policy "img-src https: data:; upgrade-insecure-requests";
 
  # We keep access log:
  access_log  /var/log/nginx/site.com_access.log;
 
  # We share static and dynamic, static stored in cache for 10 days:
      location ~* \.(jpg|jpeg|gif|png|ico|css|bmp|swf|js|doc|docx|pdf|xls|xlsx|rar|zip|tbz|7z|exe)$ {
      root /var/www/site.com/public_html;
      expires 10d;
  }
  # htaccess and htpasswd do not give:
      location ~ /\.ht {
          deny  all;
  }
 
  # We want to see statistics when accessing the /stat folder
  location = /stat {
      stub_status on;
      access_log  off;
  }
 
  location / {
      proxy_pass         http://site.com:8888/;
      proxy_redirect     off;
      log_not_found      off;
      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;
      proxy_set_header   HTTPS on;
  }
}

Не забути перезавантажити nginx

sudo /etc/init.d/nginx restart
author
Автор: Ігор Рибалко
Працюю фронтенд розробником з 2014 року. Основний стек технологій - Vue.js і WordPress

Схожі записи:

  • Як встановити та видалити XAMPP на Linux (Ubuntu)
    XAMPP – це збірка сервера для веб-розробки. Це програмне забезпечення є кросплатформним, є версії для Linux, Windows і Mac. Збірка включає Apache, PHP, MariaDB, phpMyAdmi...
  • Шпаргалка для роботи з Git
    Git є незамінним інструментом для керування версіями коду в розробці. Це дозволяє відстежувати зміни в проекті, повертатися до попередніх версій і ефективно працювати в к...
  • Створення запиту в Salesforce за допомогою SSJS
    Під час роботи з Salesforce Marketing Cloud вам може знадобитися надсилати дані до зовнішнього сервісу або динамічно отримувати контент на основі параметрів запиту. Serve...

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *