Бесплатный SSL сертификат CloudFlare

Получить бесплатный сертификат SSL, работа с сайтом через безопасный протокол https — всё это стало ещё проще с появлением сервиса cloudflare.

В статье рассматривается алгоритм получения SSL сертификата и настройка модели Full SSL CloudFlare с веб-сервером nginx.

На текущий момент работа с сайтом через https стала практически стандартом, это не удивительно, ведь совсем недавно доля HTTPS трафика в интернете превысила 50%. Если ещё два года назад необходимо было покупать дорогостоящий SSL сертификат за 2-10 тысяч, чтобы настроить безопасное подключение на своё сайте, то теперь это можно сделать бесплатно с помощью сервиса CloudFlare. В одной из предыдущих статей мы уже рассматривали настройку сайта с использованием SSL Flexible, где бегло рассмотрели несколько других моделей, в том числе Full SSL. Стоит отметить сразу несколько преимуществ безопасного протокола:

  1. Безопасное подключение между сервером и вашими пользователями (Защита от перехвата персональных данных)
  2. Повышение общего рейтинга в поисковых системах (Google повышает сайты с HTTPS в выдаче)
  3. Индикатор безопасного подключения в браузере пользователя (Повышает доверие пользователя к сайту и показывает, что владелец заботится о конфеденциальности)
  4. Увеличение конверсии сайта (Печать доверия SSL повышает конверсию сайта)




Настройка CloudFlare

Описание модели Full SSL CloudFlare

CloudFalre предоставляет несколько моделей работы с сайтом по безопасному протоколу с использованием сертификата безопасности.

Одну из моделей (Flexible), мы уже рассматривали в одной из предыдущих статей. Но она не обеспечивала должного уровня защиты между сервером CloudFlare и нашим, оставалась возможность перехвата трафика на данном участке.

Давайте подробнее рассмотрим Full SSL CloudFlare

Основное отличие от Flexible заключается в том, что между CF и сервером теперь устанавливается защищённое подключение. Это позволяет не допустить перехвата трафика на данном этапе.

Full SSL:  secure connection between your visitor and CloudFlare, and secure connection (but not authenticated) between CloudFlare and your web server. You will need to have your server configured to answer HTTPS connections, with a self-signed certificate at least. The authenticity of the certificate is not verified: from CloudFlare’s point of view (when we connect to your origin webserver), it’s the equivalent of bypassing this error message. But as long as the address of your origin webserver is correct in your DNS settings, you know that we’re connecting to your webserver, and not someone else’s.

CF подключается к нашему серверу с самоподписанным сертификатом, но при этом сервис точно знает, что мы — это мы.

Таким образом мы избавляемся от необходимости покупать дорогой сертификат и теперь можем использовать бесплатный — самоподписанный.

Конечно, если у нашего сервиса сменятся DNS-серверы, то CloudFlare автоматически перестанет доверять нашему сертификату, что полностью обезопасит нас во всех аспектах.

Основные моменты данной модели мы рассмотрели, дополнительную информацию о остальных моделях можно получить на официальном сайте CloudFlare.

Full SSL Включение и настройка бесплатного SSL сертификата

Universal SSL

Universal SSL (Shared) — Бесплатный сертификат от CloudFlare, именно его мы и будем использовать.

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

Этот сертификат можно использовать как на корневом домене (пример. kostyakulakov.ru), так и на поддомене (пр. web.kostyakulakov.ru)

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

 

 

 




 

Выбор модели безопасного подключения

Для того, чтобы выбрать модель необходимо перейти в раздел Crypto панели управления вашим сайтом в CloudFlare.

Далее в разделе SSL выбираем нашу модель — Full.

Создание бесплатного сертификата SSL

Теперь необходимо сгенерировать наш будущий сертификат, который мы будем использовать на нашем сервере.

Спускаемся в разделе Crypto на пункт Origin Certificates и нажимаем Create Cerificate

Выбираем предпочитаемый способ создания сертификата, в данной статье мы придерживаемся автоматической генерации сертификата CF.

В разделе Private key type выбираем RSA.

Нажимаем Next, чтобы получить наш бесплатный SSL сертификат

Сохранением данных сертификата

Данному этапу следует уделить повышенное внимание, так как CloudFlare показывает наш ключ всего один раз и только в момент его генерации.

После того, как мы нажали Next, CloudFlare отобразит нам наши ключи, выбираем Key Fromat PEM (Default).

Save both the private key and certificate below to your web server. To save, copy the contents of the boxes below and paste them into different files on your web server, e.g., example.com.pem and example.com.key. After saving, select your web server from the dropdown and click the “Show Instructions” button for an installation guide.

Нам необходимо подготовить два файла, содержание которых будет соответствовать сгенерированным ключам.

  • vksongs.ru.pem — в данный файл скопируем информацию из раздела Origin Certificate
  • vksongs.ru.key  — в данный файл скопируем информацию из раздела Private key

На данном этапе можно закончить настройку CloudFlare и переходить к настройки веб-сервера Apache и Nginx.

Настройка веб-сервера для работы с бесплатным сертификатом SSL

Подготовка к настройке

В предыдущем разделе мы сгенерировали два файла .pem и .key, теперь необходимо создать папку на нашем сервере и перенести туда наши сертификаты.

Для работы с FTP сервера мы будем использовать FileZilla.

  1. Создаем папку для хранения .pem и .key
  2. Загружаем в эту папку файлы .pem и .key

Наш путь до сертификатов: /usr/home/ssl

 





 

 

Настройка конфигурации NGINX для работы с бесплатным сертификатом SSL

Откроем файл конфигурации nginx, у нас он находится по пути:

Открываем и находим нашу конфигурацию:

Нам необходимо разрешить серверу слушать порт 443, который отвечает за безопасный протокол (SSL).

для этого установим директиву

Должно получиться следующее:

Теперь наш сервер умеет слушать по 443 протоколу, соответственно, разрешён доступ по https.

Следующий шаг — включение обработки безопасного подключения для нашего сайта:

В директивах мы указываем пути до наших сертификатов, те, которые мы сгенерировали в панели CloudFlare.

В конечном итоге должно получиться следующее:

В завершении необходимо перезапустить веб-сервер:

На данный момент ваш сайт будет открываться по https и по http.

Мы достигли цели и теперь мы открываемся по https, но в некоторых случаях необходимо сделать, чтобы ваш сайт открывался постоянно по https.

Для этого мы можем дополнить конфигурацию Nginx следующими правилами:

Таким образом мы достигнем того, что наш сервер будет перебрасывать все подключения по http (80 порт) на https(443 порт).

Для этого нам необходимо убрать прослушку порта из секции, где обрабатывается наш сайт, и вынести дополнительные правила в новую секцию.

На данном этапе можно завершить настройку вашего сервера.



Настройка веб-сервера Apache

Для настройки Apache нам необходимо дополнить секцию нашего виртуального сервера следующими параметрами:

Мы должны включить ядро обработки безопасного соединения и указать необходимые пути до наших сертификатов.

У меня получилось следующее:

Обратите внимание, что

Не активна, эта директива служит для того, чтобы сделать подключение по безопасному протоколу всегда активным, аналог выносной секции в nginx.



Замечание для связки Apache и NGINX

Если вы произвели настройку Apache на https, то необходимо в директиве proxy_pass изменить http на https

Заменить на

Иначе будет появляется ошибки 504.

2 Комментарии “Бесплатный SSL сертификат CloudFlare

  1. Спасибо за мануал, пока только подключил flexible, очень легко 🙂 А что делать если ip который дал cloudflare в бане?

    1. Ничего, валить оттуда на https://www.cloudns.net или переходить на платный тариф клоудфларе.
      Я чайник и то вкурил как там настроить.
      Вопрос к автору статьи: можно ли сертификат установить, а DNS юзать другой?

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

Ваш e-mail не будет опубликован.