Dark Light

Что нас интересует при покупке или аренде сервера? Ну, наверное как поднять ПО и защититься от атак.

Как раз в этой статье покажу максимально простой способ как с помощью CloudFlare можно наглухо закрыть сервер от левых запросиков и попыток залезть куда не просят.

Защита от DDoS, шифрование в самом хардкорном режиме end-to-end (strict), SSL-сертификат, а так же анализ трафика с лёгким сжатием отдаваемых данных.


Настройка CloudFlare

В интернете полно руководств как зарегистрировать аккаунт и привязать домен. Надеюсь вы это сделали. Если нет – бегом делать.

В меню открываем пункт “SSL/TLS” -> “Overview”. Ставим “encryption mode” на “Full (strict)”.

Пример

Не забываем блоком ниже в “SSL/TLS Recommender” поставить галочку. Отлично, четверть дела сделана!

Генерация Origin-сертификата

Самое вкусное – создание сертификата и ключа.

В меню открываем пункт “SSL/TLS” -> “Origin Server”. В самом низу страницы ставим галочку “Authenticated Origin Pulls”, затем сверху ищем кнопку “Create Certificate” и видим следующую картину:

Снова пример

Советую оставить всё как есть и жать “Create” снизу, после чего появится страница с двумя отдельными окнами текста. Первый скопируйте и сохраните как файл “cert.pem”, а второй “key.pem”.

Настройка сервера

Теперь дело за малым: куда-то пристроить сертификаты на сервере. У вас может быть установлено приложение или Apache – цепляйте туда. Я покажу как это сделать в NGINX.

Для корректной работы нужно сделать еще один сертификат, который выступит гарантом шифрования во всей цепи.

За основу возьмём сертификат от DigiCert. В консоли сервера пишем:

# Выкачиваем сертификат
wget https://dl.cacerts.digicert.com/EncryptionEverywhereDVTLSCA-G1.crt

# На базе сертификата создаём новый в формате PEM
openssl x509 -inform DER -outform PEM -in EncryptionEverywhereDVTLSCA-G1.crt -out chain.pem

Итого получится три файла:

  • cert.pem
  • key.pem
  • chain.pem

Их перемещаем в папку /etc/ssl или в любую другую. Это не важный момент, просто запомните путь.

Откройте файл конфигурации домена NGINX и перенесите изменения из примера ниже:

server {
    listen 443 ssl;
    server_name site.ru;

    ssl    on;
    ssl_certificate /etc/ssl/cert.pem;
    ssl_certificate_key /etc/ssl/key.pem;
    ssl_client_certificate /etc/ssl/chain.pem;
    ssl_verify_client on;
}

server {
    listen 80;
    server_name site.ru;
    return 301 https://$server_name$request_uri;
}

Обратите внимание на поле “server_name”. Он должен соответствовать вашим настройкам.

Проверим, что сайт доступен по адресу https://site.ru.

Выводы

Это всё, да-да. Если не пропустили пункты и были внимательны, то ваш сайт должен уже заработать.

Можно обойтись без NGINX/Apache и просто скормить приложению сертификаты. Например NextCloud. С документацией разберись только.

Теперь у тебя есть SSL у домена, end-to-end шифрование и аутентификация при помощи штатного функционала Authenticated Origin Pulls.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Related Posts