Настройка SSL/TLS с Nginx включенным Ubuntu

Чтобы настроить SSL/TLS с помощью Nginx on Ubuntu, выполните следующие действия:

Шаг 1: Установите Nginx

Если вы не установили Nginx, выполните следующие команды, чтобы установить его:

sudo apt update  
sudo apt install nginx

Шаг 2: Установите OpenSSL

Если у вас не установлен OpenSSL, установите его с помощью следующей команды:

sudo apt install openssl

Шаг 3. Создайте каталог для файлов SSL-сертификатов.

Создайте каталог для хранения файлов сертификатов SSL:

sudo mkdir /etc/nginx/ssl

Шаг 4. Создайте самозаверяющие сертификаты SSL/TLS(необязательно)

Если вы не используете сертификаты SSL от центра сертификации, вы можете создавать самозаверяющие сертификаты с помощью OpenSSL. Это полезно для тестирования SSL/TLS в среде разработки. Чтобы создать самоподписанный сертификат, выполните следующие команды:

cd /etc/nginx/ssl  
sudo openssl genrsa -out server.key 2048  
sudo openssl req -new -key server.key -out server.csr  
sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt  

Шаг 5. Настройте Nginx использование SSL/TLS

Откройте Nginx файл конфигурации для веб-сайта, который вы хотите защитить:

sudo vi /etc/nginx/sites-available/your_domain

Добавьте следующие строки в файл конфигурации, чтобы включить SSL:

server {  
    listen 80;  
    server_name your_domain.com www.your_domain.com;  
    return 301 https://$host$request_uri;  
}  
  
server {  
    listen 443 ssl;  
    server_name your_domain.com www.your_domain.com;  
  
    ssl_certificate /etc/nginx/ssl/server.crt;  
    ssl_certificate_key /etc/nginx/ssl/server.key;  
  
    # Additional SSL/TLS options can be added here(optional)  
    ssl_protocols TLSv1.2 TLSv1.3;  
    ssl_prefer_server_ciphers on;  
    ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';  
      
    # Additional configurations(if needed)  
      
    location / {  
        # Reverse proxy configuration(if needed)  
    }  
}  

Шаг 6: Включите конфигурацию и перезапустите Nginx

Создайте символическую ссылку из файла конфигурации, чтобы sites-available включить sites-enabled конфигурацию:

sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/

Проверьте, Nginx нет ли в конфигурации ошибок:

sudo nginx -t

Если ошибок нет, перезапустите Nginx службу, чтобы применить новую конфигурацию:

sudo systemctl restart nginx

После завершения ваш сайт будет защищен с помощью SSL/TLS. Обратите внимание, что при использовании самозаверяющих сертификатов браузер будет предупреждать о ненадежных сертификатах. Чтобы иметь доверенный сертификат SSL/TLS, вам необходимо приобрести или получить бесплатный сертификат в центре сертификации.