🖥️Настройка SNI сайта для Reality
В данной инструкции будет описана пошаговая настройка сайта для работы Reality, с использованием веб сервера Nginx и Certbot
1. Привязка IP адреса сервера к доменному имени
SNI сайт невозможно поднять без доменного имени, Вы можете быстро и легко приобрести домен у нас на сайте за несколько минут - https://my.aeza.net/order/domain
Нам требуется добавить А запись которая будет направлена на сервер Сделать это можно указав знак @ и IP сервера

Сохраняем информацию и подтверждаем добавление данной А записи Ожидаем от 5 минут до 24х часов глобального обновления после чего продолжаем настройку
2. Установка Nginx и Certbot
В данном случае будет описана настройка на сервере с операционной системой Ubuntu 22.04
Установим Nginx и Certbot следующими командами:
sudo apt install nginx certbot python3-certbot-nginx
Установка Nginx и Certbot завершена!
3. Настройка Nginx и получение SSL сертификата через Certbot
После установки Nginx имеется файл default.conf который нам не требуется, удалим его:
rm /etc/nginx/sites-enabled/default
Создадим директорию в которой будут лежать файлы сайта командой:
mkdir /var/www/html/site
В данную директорию нужно загрузить файл(ы) сайта который будет открываться по доменному имени, назовите файл index.html
Далее мы создадим конфигурационный файл сайта:
nano /etc/nginx/sites-available/sni.conf
Добавим следующую информацию:
server {
listen 80;
server_name доменное имя;
if ($host = доменное имя) {
return 301 https://$host$request_uri;
}
return 404;
}
Включим сайт командой
ln -s /etc/nginx/sites-available/sni.conf /etc/nginx/sites-enabled/
После чего получим бесплатный SSL сертификат с помощью Certbot
certbot --nginx -d доменное имя
После введения данной команды, certbot попросит ввести вашу почту, после чего нужно согласиться с условиями и сертификат будет успешно выдан.

Нужно оставить открытым 80 порт либо внести его в исключения фаервола для автоматического продления SSL сертификата.
Приведем конфигурационный файл sni.conf к правильному виду исходя из требований Reality
server {
listen 127.0.0.1:8443 ssl http2 proxy_protocol;
server_name доменное имя;
ssl_certificate /etc/letsencrypt/live/доменное имя/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/доменное имя/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305';
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 1d;
ssl_session_tickets off;
# Настройки Proxy Protocol
real_ip_header proxy_protocol;
set_real_ip_from 127.0.0.1;
set_real_ip_from ::1;
root /var/www/html/site;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
Протестируем конфигурацию файла sni.conf командой nginx -t, должны увидеть следующее сообщение:

Перезагрузим Nginx командой:
systemctl restart nginx
Ваш SNI сайт готов для использования, он доступен локально по порту 8443 В DEST(Target) нужно указать 127.0.0.1:8443, в SNI (Server name) доменное имя без порта, параметр xver должен быть со значением 1
Пример установленого SNI на панели 3x-ui:

Пример установленого SNI на панели Marzban:

Настройка завершена!
Last updated