HTTPS для Github Pages через CloudFare
https cloudflare russian
Многие хотят видеть у своего сайта зеленый значок защищенного соединения (https). К сожалению, существет ряд причин по которым это бывает сделать довольно не просто. Например, GitHub Pages до сих пор не поддерживают HTTPS для кастомных доменов (Add HTTPS support to Github Pages - это неофициальный багтрекинг Github Pages).
Есть 2 возможности обойти это ограничение:
- использовать собственный сервер для хостинга вашего сайта. Способ настройки https в данном случае хорошо описан Hosting GitHub Pages with HTTPS
- использовать сервисы (например CloudFlare).
О втором варианте я и хочу рассказать в этой заметке.
Подразумевается, что вы знакомы с Githab Pages и знаете как хостить там свой сайт.
В качестве бонуса, сайт будет загружаться быстрее (CloudFlare кэширует ваш сайт и поддерживает новые протоколы SPDY и IPv6).
С другой стороны, данное решение имеет некоторые ограничения и не подходит для ряда случаев:
-
Если вы используете кастомный домен, то соединение между серверами CloudFlare и Github вовсе не обеспечивает безопаность данных. Это соединение, как правило, надежнее по сравнению с WiFi в кафе, но оно не защищено от современных атак. Это ограничение, связано с тем, что Github не поддерживает безопасные соединения для пользовательских доменов.
-
Старые браузеры не поддерживают защищенные соединения. Если это критично для вас вы можете использовать платный план. Единственный способ для CloudFlare поддерживать старые браузеры - предоставление выделенного IP-адреса для вашего сайта. Вполне логично, что они не могут обеспечить ими всех бесплатно.
Установка
-
Создаем аккаунт на CloudFlare
-
Проходим по шагам настройки CloudFlare для вашего домена
-
Делелегируем DNS нейм сервера на CloudFlare. После чего вы получите возможность управлять настройками DNS вашего домена из CloudFlare. Для Github Pages вам нужно иметь корневую CNAME запись, которая ссылается на домен вида
<your_github_alias>.github.io
. -
Включаем SSL опцией Flexible SSL в настройках. Если вы не используете кастомный домен, то для лучшей защищенности можно выбрать опцию Full(Strict). Ждем в течение 24 часов, пока применятся изменения в DNS и CloudFlare сгенерирует SSL сертификат для домена.
-
После выполнения шагов ваш домен будет доступен через CloudFlare как по защищенному так и по незащищенному соединению.
-
Настраиваем редирект на
https
:- из CloudFlare консоли переходим в Page Rules
- добавляем URL pattern
https://yourwebsite/*
- выбираем Always use HTTPS
- Нажимаем Add Rule
-
Наслаждаемся результатом и идем пить кофе.
P.S. В связи с тем, что CloudFlare кеширует изменения на вашем сайте, они не могут мгновенно отображаться. Тем ни менее, вы всегда можете перейти в консоль CloudFlare и перевести домен в режиме разработчика, который временно отключит кэширование.