LINUX.ORG.RU

Ssl


11

0

Всего сообщений: 2

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

Ниже описан достаточно лёгкий способ получить обратный прокси с 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

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

 agnie, , , ,

Harliff
()

Разработка сетевой библиотеки на C++20: интеграция асинхронности и алгоритма Raft (часть 1)

Разработка сетевой библиотеки на C++20: интеграция асинхронности и алгоритма Raft (часть 1)

Введение

С годами работы в области распределённых систем, я понял, что мой опыт не будет полным без реализации алгоритма Raft. Это осознание побудило меня к действию: я решил создать свою реализацию, используя асинхронные возможности C++20.

( читать дальше... )

 , , , ,

Reset
()