LINUX.ORG.RU

Быстрый HTTPS для сайта с помощью angie (форк nginx)

 agnie, , , ,


4

2

Ниже описан достаточно лёгкий способ получить обратный прокси с SSL-сертификатом.

Веб-сервер Angie позволяет получать SSL-сертификаты от LetsEncrypt без использования сторонних средств (таких как CertBot).

Установка Angie тривиальна. Документация (на русском языке!) написана понятно и лаконично.

В дополнение к официальной документации, привожу минимально необходимые дополнения к стандартному конфигу, позволяющие автоматически получить и установить SSL для домена example.org, который размещён на веб-сервере с IP-адресом 192.168.2.2.

# cat /etc/angie/http.d/LetsEncrypt.conf

# This part must be included only once into http section (for all sites)
resolver 8.8.8.8;
acme_client letsencrypt https://acme-v02.api.letsencrypt.org/directory;
# cat /etc/angie/http.d/example.org.conf

server {
    listen 80;
    server_name example.org;

    # Redirect all HTTP to HTTPS
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name example.org;

    # Obtain and use certificate from LetsEncrypt
    acme letsencrypt;
    ssl_certificate $acme_cert_letsencrypt;
    ssl_certificate_key $acme_cert_key_letsencrypt;

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

После создания данных конфигов, следует проверить конфигурацию на отсутствие ошибок:

sudo angie -t

и перезапустить веб-сервер

sudo angie -s reload

Желаю успехов!

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 4)
Ответ на: комментарий от Zhbert

И обновлять он сам будет потом?

Да.

Harliff ★★★★★
() автор топика

acme_client letsencrypt https://acme-v02.api.letsencrypt.org/directory;

Не фанат идеи засунуть в nginx кучу постороннего. Пользы не много, а дыр точно не станет меньше

Обычный certbot (без рутовых прав) сделает все необходимое. От nginx потребуется только раздать каталог проверки (один include на site)

router ★★★★★
()
Ответ на: комментарий от router

в идеальном мире, обеспечением «зеленых» сертификатов должно заниматься окружение в котором запущено приложение, по запросу от сервиса.

gagarin0
()
Ответ на: комментарий от gagarin0

В идеальном мире сертификаты не были нужны, и всё прекрасно работало по http. Но потом практика столкнулась с суровой реальностью, и всё заверте...

DummyBoy ★★
()

Молодцы, ребята. Заняты делом.

seiken ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.