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