Как настроить SSL-сертификат для домена вместо использования IP-адреса в WG-Easy (репозиторий DigneZzZ/dwg)?

Как настроить доступ к панели WG-Easy через домен с использованием SSL от Let’s Encrypt, чтобы обеспечить доступ не по IP-адресу, а по поддомену, например vpn.site.com? Я пытался следовать инструкциям на GitHub, используя Nginx и Caddy, но столкнулся с проблемами, такими как падение контейнеров и невозможность их запуска. Может кто-то поделиться опытом и помочь разобраться с этой задачей?
  • 21 января 2024 г. 17:09
Ответы на вопрос 2
Для настройки SSL-сертификата для домена и обеспечения доступа к панели WG-Easy через домен с использованием SSL от Let’s Encrypt, вы можете использовать прокси-сервер, такой как Nginx или Caddy. Это даст вам возможность защитить соединение с помощью HTTPS. Ниже приведен подробный процесс настройки с использованием Nginx и Certbot (клиент для Let’s Encrypt), а также краткое описание настройки с помощью Caddy.

### Настройка с Nginx и Certbot

1. **Установка Nginx и Certbot**
   
   Установите Nginx и Certbot на хост-систему, где работает ваш контейнер WG-Easy:
   
    ```bash
    # Обновление списка пакетов
    sudo apt update
    
    # Установка Nginx
    sudo apt install nginx
    
    # Установка Certbot и плагина для Nginx
    sudo apt install certbot python3-certbot-nginx
    ```

2. **Настройка DNS**

   Убедитесь, что DNS-запись для желаемого поддомена (например, vpn.site.com) указывает на IP-адрес вашего сервера.

3. **Получение SSL-сертификата**

   Запустите Certbot и следуйте инструкциям, чтобы получить и настроить SSL-сертификат для вашего поддомена:
   
    ```bash
    sudo certbot --nginx -d vpn.site.com
    ```
   
   В процессе установки Certbot автоматически изменит конфигурацию Nginx для использования SSL-сертификата.

4. **Настройка конфигурации Nginx**

   Создайте/измените конфигурационный файл Nginx для вашего поддомена:
   
    ```bash
    sudo nano /etc/nginx/conf.d/vpn-site-com.conf
    ```
   
   И используйте следующую конфигурацию, адаптируя её к вашим нуждам:
   
    ```nginx
    server {
        listen 80;
        server_name vpn.site.com;
        return 301 https://$host$request_uri;
    }
    
    server {
        listen 443 ssl;
        server_name vpn.site.com;

        ssl_certificate /etc/letsencrypt/live/vpn.site.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/vpn.site.com/privkey.pem;

        location / {
            proxy_pass http://127.0.0.1:51821; # Предполагается, что WG-Easy работает на этом порту
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
        }
    }
    ```
   
   Замените `51821` на порт, который вы использовали для WG-Easy, и `vpn.site.com` на ваш домен.

5. **Перезапуск Nginx**

   После изменения конфигурации сохраните файл и перезапустите Nginx:
   
    ```bash
    sudo systemctl restart nginx
    ```

Теперь панель WG-Easy должна быть доступна по адресу `https://vpn.site.com`, и соединение должно быть защищено SSL-сертификатом.

### Альтернативно: использование Caddy

С Caddy процесс настройки может быть проще, так как Caddy автоматически обрабатывает SSL-сертификаты:

1. **Установка Caddy**

   Следуйте инструкциям на официальном сайте Caddy для установки.

2. **Настройка Caddyfile**

   Создайте файл конфигурации Caddy (`Caddyfile`) и настройте его для обслуживания вашего поддомена:

    ```
   
Не забудь поменять [email protected] на свой. 
Похожие вопросы