NPNEONPROXYPROXY NETWORK
КупитьЦеныFAQПартнёркаБлогПрокси-чекерМой IPAPITG-бот

Как настроить надежный HTTPS-прокси с Docker, Nginx и Let's Encrypt

Если вы занимаетесь разработкой или администрированием веб-проектов, то наверняка сталкивались с задачей обеспечить безопасный доступ к своему сайту. Использование SSL-сертификатов — обязательное условие для защиты данных пользователей и повышения доверия к ресурсу. В этой статье я расскажу, как настроить полноценный HTTPS-прокси с помощью Docker, Nginx и бесплатных сертификатов от Let's Encrypt.

Почему именно Docker, Nginx и Let's Encrypt?

  • - Docker упрощает развертывание и управление сервисами, делая инфраструктуру более гибкой и повторяемой.
  • - Nginx — мощный веб-сервер и обратный прокси, идеально подходит для маршрутизации трафика и SSL-терминации.
  • - Let's Encrypt — бесплатное и автоматизированное решение для получения и продления SSL-сертификатов.

Объединение этих технологий позволяет быстро и безопасно запускать веб-сервисы с автоматической поддержкой HTTPS.

Шаг 1: Установка Docker и Docker Compose

Если у вас еще не установлены Docker и Docker Compose, выполните их установку, следуя документам на официальных сайтах. Для Ubuntu это выглядит так:

``bash sudo apt update sudo apt install docker.io docker-compose ``

Убедитесь, что Docker работает:

``bash sudo systemctl start docker sudo systemctl enable docker ``

SVYAZVPN — свобода без границ

Шаг 2: Создание конфигурации Nginx с автоматическим получением сертификатов

Создайте папку для проекта:

``bash mkdir -p ~/nginx-proxy cd ~/nginx-proxy ``

В этой папке создайте файл docker-compose.yml:

```yaml version: '3'

services: nginx: image: nginx:latest container_name: nginx_proxy restart: always ports: - "80:80" - "443:443" volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro - ./certs:/etc/letsencrypt:ro - ./html:/usr/share/nginx/html depends_on: - certbot

certbot: image: certbot/certbot container_name: certbot volumes: - ./certs:/etc/letsencrypt - ./html:/usr/share/nginx/html entrypoint: "/bin/sh -c 'trap exit TERM; while :; do sleep 12h & wait $${!}; done;'" ```

Затем создайте nginx.conf, где настроите прокси:

```nginx events {}

http { server { listen 80; server_name yourdomain.ru www.yourdomain.ru;

location /.well-known/acme-challenge/ { root /usr/share/nginx/html; }

location / { return 301 https://$host$request_uri; } }

server { listen 443 ssl; server_name yourdomain.ru www.yourdomain.ru;

ssl_certificate /etc/letsencrypt/live/yourdomain.ru/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/yourdomain.ru/privkey.pem;

location / { proxy_pass http://your_backend_service:port; 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; } } } ```

Замените yourdomain.ru на ваш реальный домен и укажите правильный backend.

Шаг 3: Получение SSL-сертификата через Certbot

Запустите контейнер Certbot для получения сертификата:

``bash docker-compose run --rm certbot certonly --webroot --webroot-path=/usr/share/nginx/html -d yourdomain.ru -d www.yourdomain.ru ``

После успешного получения сертификатов, перезапустите контейнер Nginx:

``bash docker-compose up -d ``

Шаг 4: Автоматизация обновления сертификатов

Для автоматического продления сертификатов добавьте задачу в cron или настройте запуск Certbot через Docker с интервалом. Например, создайте cron-задание:

``bash 0 0,12 * * * docker-compose run --rm certbot renew && docker-compose restart nginx ``

Это обеспечит автоматическое продление сертификатов и перезапуск Nginx при необходимости.

Итог

Использование Docker, Nginx и Let's Encrypt — отличный способ быстро настроить безопасный HTTPS-прокси для своего сайта или сервиса. Такой подход позволяет автоматизировать все процессы, свести к минимуму ручную работу и обеспечить высокий уровень защиты данных.

Если у вас остались вопросы, напишите в комментариях или на форуме — я с удовольствием помогу вам разобраться!

Ключевые слова: docker nginx letsencrypt proxy, настройка nginx с ssl, автоматическое получение сертификатов, HTTPS через Docker

Готовы начать

Оформите прокси под вашу задачу

IPv4, IPv6, Shared и MTProto — мгновенная выдача после оплаты, 24 гео-зоны, HTTPS и SOCKS5.

Перейти к заказу