Настройка ssl на хостинге. SSL на хостинге Beget. Что такое HTTPS

Приветствую вас, друзья! 🙂

В сегодняшней статье будет рассмотрена установка SSL сертификата. Мы поговорим о том, как создать SSL сертификат самому и подключить его к сайту для осуществления обмена информацией с пользователями по защищённому протоколу HTTPS.

Сразу скажу, что установить SSL сертификат на сайт можно двумя путями: через интерфейс панели управления сервером и с помощью ручного копирования файлов сертификата с последующими настройками веб-сервера (Apache или Nginx) в случае, если ваш хостинг не имеет графической панели управления.

Информация по установке SSL сертификата будет представлена в виде пошаговой инструкции, при составлении которой я воспользовался первым способом и своим хостингом TheHost , к панели управления которого (используется ISPManager) у меня есть доступ.

TheHost позволяет как устанавливать SSL сертификаты, приобретённые у него, так и выполнять подключение SSL сертификата, приобретённого у других поставщиков.

Также в панели управления хостингом есть возможность сделать бесплатный SSL сертификат от Let’s Encrypt и самоподписанный с последующей их установкой.

Все эти варианты мы сегодня и рассмотрим, т.к. на практике случаются разные ситуации, для которых бывают нужны различные типы SSL сертификатов безопасности.

Поехали 🙂

Как установить SSL сертификат на сайт: этапы

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

Если говорить о том, как подключить SSL сертификат к сайту, то весь процесс состоит из нескольких этапов:

  1. Генерация SSL сертификата. Заключается в создании самоподписанного сертификата на сервере самостоятельно либо в формировании запроса на выпуск данного документа в центр сертификации (CA).
  2. Подключение SSL сертификата к сайту.

После этого необходимо будет произвести некоторые настройки для вашего движка сайта, чтобы он корректно обменивался данными с пользователями по HTTPS, о чём мы поговорим в следующих публикациях, т.к. каждая платформа требует индивидуального подхода.

Итак, рассмотрим каждый этап подробнее, начиная с создания SSL сертификата.

Создание SSL сертификата

Поскольку все сегодняшние действия будут производиться на хостинге TheHost, то сперва нужно создать учётную запись, чтобы они были возможны.

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

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

Как заказать SSL сертификата на хостинге?

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

Во-первых, сгенерировать SSL сертификат данного типа сможет даже ребёнок: не нужно скачивать и запускать какие-то утилиты, а также вникать в тонкости того, как установить SSL сертификат на сервер.

Всё, что от вас потребуется — просто ввести нужную информацию о сайте и свои персональные данные. Создание и установка SSL сертификата на сайт произойдёт автоматически.

Во-вторых, по сравнению с заказом SSL сертификата у официальных регистраторов, хостинг-провайдеры, которые выступают посредниками, часто вводят различные акции и бонусы, в результате чего сертификат можно приобрести со существенной скидкой или вообще бесплатно.

Официальные регистраторы, насколько я знаю, таким покупателей не балуют.

В-третьих, по сравнению с бесплатными сертификатами, коммерческие имеют бОльший срок действия. Их можно оформлять на год и дольше, в то время, как бесплатные действуют в течении считанных месяцев, из-за чего их нужно постоянно продлевать.

И не дай Бог вам забыть это сделать — пользователи ваш сайт вообще не увидят, а только лишь сообщение об угрозе безопасности на весь экран браузера.

Чтобы сделать заказ, сперва нам нужно зайти в кабинет пользователя через сайт thehost.ua либо по ссылке, содержащейся в письме, сгенерированном при регистрации. После того, как войдёте в систему, выберите пункт бокового меню «SSL сертификаты» и нажмите кнопку «Заказать» вверху страницы.

После проделанных действий на экране появится диалоговое окно, которое выглядит так:

Здесь нам нужно выбрать тип SSL сертификата, который вы хотите купить и срок его действия. Цена услуги, естественно, будет зависеть от этих двух параметров.

Более подробно о доступных SSL сертификатах, которые можно заказать через TheHost, можете прочитать здесь — https://thehost.ua/services/ssl

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

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

После выбора необходимого тарифа нажимаем Далее и переходим к следующему шагу создания SSL сертификата:

Он представляет из себя формирование запроса в сертификационный центр, необходимого для того, чтобы получить SSL сертификат.

Запрос должен быть в виде файла с вашими зашифрованными персональными данными с расширением csr .

Если вы его уже сгенерировали (а о том, как это сделать прямо в ISPManager админки TheHost, я расскажу вам дальше), то на данном шаге просто введите его содержимое.

Для этого нужно выбрать для пункта «Способ ввода CSR» значение «Ввод имеющегося CSR», которое выбрано по умолчанию.

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

Для этого выберите в качестве способа ввода CSR в выпадающем списке значение «Генерация CSR и Private key».

При этом данное диалоговое окно примет следующий вид:

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

О том, какие данные следует вводить и откуда их брать, вы можете прочитать в статье о том, .

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

Если же вы вводили текст существующего запроса, то данный код у вас уже должен быть и обычно он хранится в файле с расширением key , приходящим вам на почту после генерации запроса через сторонние утилиты. Поэтому данного шага у вас не будет.

На следующем шаге от нас снова требуется ввод контактной информации администратора и технической поддержки, с которыми могут связаться представители CA для подтверждения информации, введённой в заявке на выпуск SSL сертификата:

Следующим этапом является ввод email, на который будет высылаться ссылка для подтверждения генерации SSL сертификата:

Если у вас нет готового email, присутствующего среди вариантов выпадающего списка, то заведите его.

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

Что вполне справедливо, т.к. TheHost сам сертификат не выпускает, а заказывает его у официальных сертификационных центров.

Ну, и на финальном этапе от вас потребуется выбрать способ оплаты и срок продления SSL сертификата, на который он будет автоматически выпускаться при истечении своей действительности:

Нажимаем на Готово и всё, что теперь остаётся — это дождаться запроса подтверждения выпуска SSL сертификата из центра сертификации и самого сертификата.

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

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

Итак, как сделать заказ генерации SSL сертификата у официальных центров сертификации, я вам показал.

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

В таком случае вполне подойдёт бесплатный самоподписанный SSL сертификат, который создать у TheHost можно за считанные секунды.

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

Если вам плохо видно изображённое на картинке, то для перевода в ISPManager из кабинета пользователя нужно выбрать пункт меню «Хостинг», выбрать необходимый сервер (может быть несколько в одной учётке юзера) и нажать на кнопку «На сервер», которая становится доступной после выбора сервера.

Находясь в ISPManager, выбираем пункт меню SSL сертификаты и нажимаем на кнопку «Создать в самом» верху страницы.

В появившемся диалоговом окне выбираем для поля Тип сертификата значение «самоподписанный», после чего окно примет следующий вид:

Вводим необходимую информацию, аналогичную той, которую мы указывали при оформлении SSL сертификата в CA, после чего нажимаем «ОК».

Сертификат появится в списке существующих SSL сертификатов.

Обратите внимание, что преимуществом самоподписанного SSL сертификата является его бесплатность и практически неограниченный срок действия.

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

Подключение SSL сертификата, оформленного в другом месте

Если же вам по какой-то причине не подошли сертификаты или их стоимость от TheHost, и вы заказали SSL сертификат в другом месте, но у вас есть сайт, расположенный на данном хостинге, то вы можете подключить свой сертификат к имеющемуся сайту.

Сделать это можно в том же диалоговом окне, которое использовалось для создания самоподписанного SSL сертификата.

Только для добавления на сервер TheHost существующего документа нужно будет в поле «Тип сертификата» выбрать значение «существующий», после чего всё диалоговое окно примет следующий вид:

Вводим информацию, содержащуюся в вашем готовом SSL сертификате для домена, в соответствующие поля и нажимаем «ОК».

Если у вас возникнут трудности при добавлении данного документа, то вы всегда сможете обратиться к технической поддержке TheHost для консультации.

Создание запроса SSL сертификата у CA

Ну, и ещё одной возможностью, доступной в данном диалоговом окне создания SSL сертификата, является генерация запроса на выпуск данного документа в центре сертификации.

Данная возможность вам может пригодиться, как уже говорилось ранее, при заказе SSL сертификата не через своего хостинг провайдера, а через других, в том числе и при обращении в CA
напрямую.

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

Наиболее распространённой является OpenSSL, которая доступна как под Linux, так и под Windows благодаря CygWin или использованию других эмуляторов консоли Linux (та же самая командная строка Git поддерживает Linux команды или утилита PuTTY).

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

  • https://www.rapidsslonline.com/ssl-tools/csr-generator.php
  • https://csrgenerator.com/
  • https://www.ssl.com/online-csr-and-key-generator/

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

Есть такой и у TheHost, который доступен в данном окне.

Чтобы его запустить, выбираем в поле «Тип ключа» значение «Запрос», после чего диалоговое окно примет следующий вид:

Вводим необходимую информацию и нажимаем ОК. После этого на сервере TheHost сгенерируются файлы csr и key, которые вы сможете в дальнейшем использовать для выпуска сертификата.

Чтобы можно было использовать их содержимое, вам нужно будет выбрать запись с типом «Запрос» в списке всех SSL сертификатов в панели управления хостингом TheHost и нажать кнопку «Скачать» в самом верху экрана, после чего вам на компьютер будет загружен архив с указанными файлами.

Открывайте их обычным текстовым редактором и копируйте код запросов при оформлении SSL сертификатов как через TheHost, так и у других регистраторов.

Как получить бесплатный SSL сертификат Lets Encrypt?

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

Речь идёт о генерации бесплатного SSL сертификата LetsEncrypt, создать который можно за считанные секунды.

Среди его преимуществ можно выделить не только то, что за его оформление вам не придётся платить, но и то, что процедура его выпуска самая быстрая из всех указанных (по крайней мере, у TheHost), т.к. при генерации не придётся указывать абсолютно никакой дополнительной информации, кроме доменного имени сайта, для которого документ будет выпускаться.

Из минусов можно отметить только то, что он выпускается лишь на 3 месяца, после чего его нужно будет продлевать.

Итак, чтобы создать SSL сертификат от Lets Encrypt, заходим на страницу «SSL сертификаты» в ISPManager и нажимаем на кнопку «Lets Encrypt», после чего откроется следующее диалоговое окно:

Выбираем из списка домен, для которого сертификат будет выпускаться, и нажимаем «ОК».

После этого, без всяких лишних вопросов, сертификат добавится в список. Если просмотреть информацию, содержащуюся в нём (нужно выбрать сертификат и нажать на кнопку «Информация»), то можно увидеть следующее:

Как видите, для всех LetsEncrypt SSL сертификатов TheHost указывает абсолютно идентичную информацию, упрощая и ускоряя процедуру их выпуска.

При желании вы можете произвести настройку SSL сертификата и изменить содержащуюся в нём информацию на данном этапе. Кстати, настоятельно рекомендую это сделать, т.к. этот шаг повысит ваше доверие у ваших пользователей, которые решат просмотреть данные сертификата.

Отсутствие персональных данных владельца в нём может серьёзно насторожить их, а для некоторых может даже послужить сигналом отказа от использования данного сайта.

Итак, создание SSL сертификата, я надеюсь, прошло у вас успешно. Теперь всё, что осталось сделать для успешной передачи данных по HTTPS, — это подключить SSL сертификат к сайту, для которого он оформлялся.

В качестве наглядного примера я решил продемонстрировать подключение SSL сертификата к своему тестовому сайту, для которого с этой целью был специально зарегистрирован поддомен — ssl.сайт. О том, в ISPManager на примере TheHost вы можете прочитать в статье по указанной ссылке.

Итак, для подключения SSL сертификата к сайту в панели управления хостингом ISPManager открываем пункт меню «WWW домены», выбираем необходимый и нажимаем на кнопку «Изменить», которая становится доступной в самом верху страницы.

После этого на экране появляется следующее диалоговое окно:

Чтобы установить SSL сертификат на выбранный домен, нам нужно поставить галочку в поле «SSL» и выбрать из выпадающего списка имя нужного документа.

Вот и всё. SSL сертификат на сайт установлен. Сами могли убедиться, насколько это просто и быстро благодаря TheHost и ISPManager, в частности.

Да, пусть он выглядит неказисто, но со своими задачами справляется на отлично 🙂

Теперь нам останется только произвести настройки движка сайта, чтобы он корректно работал по новому HTTPS протоколу. Среди них будут редиректы с HTTP на HTTPS, настройка зеркал, правки карты сайта и robots.txt, а также много другое.

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

В завершение обзора настроек сайта в ISPManager, связанных с SSL, хочу обратить ваше внимание на поле «Только SSL» в диалоговом окне, изображённом на скриншоте выше. С помощью него возможно сделать редиректы с HTTP на HTTPS для URL сайта на уровне веб сервера Nginx.

Установив галочку в данном поле, в файл конфигурации веб сервера Nginx на хостинге добавится следующий код:

If ($ssl_protocol = "") { rewrite ^ https://$server_name$request_uri? permanent; }

Можете взять данный способ организации редиректов с HTTP на HTTPS себе на заметку, особенно, если вы не пользуетесь услугами shared хостингов и панелями управления хостингом, в частности, а редирект настроить нужно.

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

Проверка правильности установки SSL сертификата

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

Они могут быть разнообразны: начиная от несовпадения информации в сертификате с той, которая хранится в центре сертификации, заканчивая ошибками в работе самого сертификата.

Чтобы получить полный список проблем и просканировать свой сайт на их наличие, я рекомендую воспользоваться следующими сервисами:

  1. https://www.ssllabs.com/ssltest
  2. https://www.digicert.com/help

В качестве вывода хотелось бы сказать, что в ходе чтения статьи вы сами заметили, насколько хостинг провайдер и панель управления хостингом упрощает жизнь при заказе, установке и настройке SSL сертификатов. Особенно вы могли это ощутить, если когда-либо устанавливали HTTPS соединение для сайта на сервере вручную, не располагающего панелью управления.

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

Особенно ценен данный аргумент для людей, которые никогда не были связаны с веб-программированием и созданием сайтов, но установка SSL сертификата на их сайты необходима.

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

Ну, а если вы ещё только выбираете такового, то хочу порекомендовать TheHost, инструкция по созданию и установке SSL сертификата в панели управления которого и была представлена в данной статье.

На этом всё. До новых встреч! 🙂

P.S. : если вам нужен сайт либо необходимо внести правки на существующий, но для этого нет времени и желания, могу предложить свои услуги.

Более 5 лет опыта профессиональной разработки сайтов. Работа с PHP , OpenCart , WordPress , Laravel , Yii , MySQL , PostgreSQL , JavaScript , React , Angular и другими технологиями web-разработки.

Опыт разработки проектов различного уровня: лендинги , корпоративные сайты , Интернет-магазины , CRM ,

С каждым днем необходимость в защищенном соединения стает все острее. Во-первых, это более безопасная работа с сайтом, потому что все данные передаются в шифрованном виде, во-вторых, это зелёный замочек рядом с адресом сайта, что вызывает некое доверие к порталу, в-третьих, по заявлению представителей Google, сайты работающие на https имеют преимущество в поисковой выдаче.

SSL-сертификатов существует несколько видов: от простых с проверкой домена, до мультидоменных с информацией о компании (зеленой строкой). Рассматривать все виды и преимущества каждого мы не будем, главная задача, разобраться как получить SSL-сертификат бесплатно .

Получения и установка SSL-сертификата Let’s Encrypt

1. Для получения сертификата воспользуемся сайтом https://www.sslforfree.com/ . Переходим по ссылке и прямо на главной странице видим основное поле. Вбиваем туда имя нашего домена и нажимаем кнопку “Create Free SSL Certificate” .

2. Далее сайт нам предлагают на выбор несколько вариантом подтверждения домена. Нажимаем “Manual Verification” , после “Retry Manual Verification” . В итоге, мы получаем два файла которые необходимо залить на сайт в папку /.well-known/acme-challenge . Выполняем данные действия и нажимаем “Download SSL Certificate” .

3. Наш SSL-сертификат готов, срок его действия 90 дней , после необходимо повторить процедуру. Остается только установить его на сайт.

4. Процесс установки сертификата на каждом хостинге может немного отличаться, если у вас установлена какая-либо панель управления (ISP Manager, cPanel и т.д.), то сделать через нее не составит большого труда. Для этого переходим в раздел “SSL сертификаты” и выполняем установку по инструкции. В случае отсутствия панели установка происходит через конфиги web-сервера, подробнее о процессе установки SSL-сертификата на Apache в CentOS.

5. Настройка редиректа с http на https . Сделать это можно несколькими способами, через панель хостинга, через файл.htaccess, через конфигурацию вашего web-сервера или через PHP (любой другой язык, на котором сделан сайт).

Все способы рассматривать не будем, это материал для другой статьи. Самый распространённый пример, редирект с http на https через.htaccess . Добавляем нижеуказанный код в начало файла.htaccess:

RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}

< IfModule mod_rewrite . c >

RewriteEngine On

RewriteCond % { HTTPS } off

RewriteRule ^ (. * ) $ https : //%{HTTP_HOST}%{REQUEST_URI}

< / IfModule >

6. Процесс установки закончен, теперь необходимо проверить сайт, чтобы все картинки, стили, скрипты подгружались по https соединению , в противном случае сайт не будет помечаться как безопасный. Проще всего вообще удалить “http:” из подключаемых файлов, то есть сделать так.

В июле 2015 года я перевел свой сайт на безопасный протокол HTTPS. Данная инструкция поможет вам без труда проделать тоже самое. Тем более, что постоянно витают слухе об отказе популярными браузерами незащищенного HTTP, в связи с чем, предвидится массовый переход на HTTPS.

Так же любой сайт на котором есть комментирование статей, форма подписки и окно поиска, можно формально подвести под закон о защите персональных данных, который требует использовать безопасные защищенные протоколы при передаче информации. Поэтому рано или поздно вам тоже придется столкнуться с необходимостью перевода сайта на HTTPS.

Как перевести сайт на HTTS

Пять простых шагов как перевести свой сайт на HTTPS

  1. Получение SSL сертификата
  2. Настройка веб-сервера
  3. Информирование поисковых систем

Где взять SSL сертификат для сайта

Сразу стоит определиться к какой категории относитесь вы и ваш сайт. Если вы выступаете как частное (физическое) лицо, то вам доступен лишь один вид сертификата: DV (Domain Validation). Он самый простой, выпуск его занимает минимальное время. Необходимо лишь подтвердить права владения доменным именем. Если вы представляете юридическое лицо, то вам доступны все типы сертификатов. Выбирайте любой в зависимости от потребностей вашего сайта. Но готовьтесь к тому, что проверка займет длительное время, а сам сертификат может дорого стоить.
Ранее я писал, . Этот вариант отлично подходит блогерам и владельцам персональных сайтов. Как получить такой бесплатный сертификат хорошо описано на Хабре в статье-инструкции Получаем бесплатный SSL сертификат .

Установка сертификата на сервер

Перед приобретением Ssl сертификата следует выяснить возможность его использования у себя на хостинге. Если у вас виртуальный хостинг, то настроить использование HTTPS может только поставщик услуг хостинга. Заранее выясните у него такую возможность. Если у вас сервер, не важно виртуальный или выделенный, то сертификат SSL гарантированно можно установить или использовать.

Помните, что сертификат вы получаете на домен (доменное имя), а устанавливать его надо на сервер (веб-сервер).

Установка зависит от вебсервера. Apache и NGINX настраиваются по разному. Вот неплохая инструкция как все сделать своими руками Ручная установка SSL сертификата .
Но если вы на хостинге используете панель управления VestaCP , то все заметно упрощается. Эта панель позволяет установить сертификат для вашего домена прямо из веб-интерфейса.

Предполагаю, что подобная возможность есть и в других панелях управления.

Настройка сайта, отказ от HTTP ссылок

Настройками сайта нужно добиться того, чтобы замочек защищенного соединения всегда был закрытым на всех страницах вашего сайта.


Вполне возможно, что обратившись к своему сайту в первый раз по HTTPS протоколу вы увидите такую картину:


Как видите замочек открыт, а это значит, что посетитель получает часть информации в незащищенном виде. Если щелкнуть мышкой по раскрытому замку, то можно увидеть примерно следующее:

Что нужно сделать, чтобы устранить проблему открытого замка HTTPS:

  • Исправить все внутренние ссылки на использование протокола HTTPS
  • Если используете картинки с внешних ресурсов, которые не работают по HTTPS, то скопируйте изображения себе на сайт
  • Отказаться от внешних сервисов и систем которые не работают по HTTPS
  • Убрать все плагины которые работают только по HTTP

Как исправить все ссылки на сайте

Для начала следует принять за правило использовать все ссылки без указания протокола. Это решение я подсмотрел в коде вызова скрипта Google.Adsense. Если раньше ваши ссылки выглядели так http://domainname.tld/page1.htm , то теперь они должны выглядеть так //domainname.tld/page1.htm . Ссылки такого рода будут работать и по HTTP и по HTTPS.
Если ваш сайт использует для хранения данных MySQL, а таких большинство. То проще всего сделать дамп базы. Скачать его себе на компьютер. Так как дамп базы данных MySQL представляет собой обыкновенный текстовый файл, то можно с помощью обычного текстового редактора произвести замену внутренних адресов на вариант описанный выше. После чего дамп базы данных нужно залить на сервер обратно.
Также можно поступить и с внешними ссылками. Но только не ставьте принудительно протокол HTTPS, так как нет никакой гарантии, что внешний ресурс его поддерживает.

Картинки с внешних ресурсов

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

Внешние сервисы которые не поддерживают HTTPS

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

Плагины работающие по HTTP

На моем сайте оказалось два плагина которые никак не хотели работать по безопасному протоколу HTTPS. Пришлось от них отказаться. Кроме того я проверил весь HTML код сайта на предмет загрузки скриптов и прочего с внешних ресурсов. Многие на автомате заработали по безопасному протоколу. Так же вычистил кучу мусора и неиспользуемого кода.

После проведения всех вышеописанных процедур сайт полноценно заработал по протоколу HTTPS, и замок безопасности оставался закрытым при посещении всех страниц.

Настройка веб-сервера на использование HTTPS

Для поисковых систем сайты доступные по разным протоколам http://domainname.tld и https://domainname.tld — это совершенно разные сайты. Поэтому необходимо поисковому роботу указать, кто тут главный. Для это в файле robots.txt необходимо написать название сайта с явным указанием протокола:

Host: https://domainname.tld

Затем необходимо настроить принудительную переадресацию всех запросов на протокол HTTPS. Чтобы пользователь который набрал http://domainname.tld все равно попал на безопасную версию сайта https://domainname.tld .
Если вы используете вебсервер Apache, то можно поступить следующим образом, добавьте в файл .htaccess нижеследующий код:

RewriteCond %{HTTPS} !on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Информирование поисковых систем об использовании протокола HTTPS

В панели для вебмастеров поисковых систем Яндекс и Google необходимо добавить и подтвердить новый сайт, указав версию https.

Недавно я уже рассказывал о том как для подтверждения доменного имени. Мы его использовали для организации ssl/tls соединений в почтовом сервере. Теперь его же мы будем использовать для того, чтобы перевести наш сайт на работу по ssl протоколу.

Установка mod_ssl в apache

В качестве сервера у нас выступает , хотя это не принципиально, настройка на других linux дистрибутивах будет идентичной. Рабочим web сервером является apache . Использовать ssl протокол в apache мы будем с помощью мода mod_ssl . Первым делом проверим, установлен ли он:

# rpm -qa | grep mod_ssl

Если нет, то устанавливаем:

# yum -y install mod_ssl

После установки мода, идем в директорию /etc/httpd/conf.d и правим там файл настроек ssl.conf. Прописываем пути к сертификатами в директивах SSLCertificateFile и SSLCertificateKeyFile .

Создание виртуального хоста с поддержкой ssl

SSLEngine on SSLCertificateFile /root/cert/zeroxzed.ru.crt SSLCertificateKeyFile /root/cert/zeroxzed.ru.kye AllowOverride All DocumentRoot /var/www/vhosts/zeroxzed.ru/www ServerName zeroxzed.ru

После сохранения проверяем конфигурацию apache:

# httpd -t

Если появляется предупреждение:

Default_ VirtualHost overlap on port 443, the first has precedence

То ищем в /etc/httpd/conf/httpd.conf строчку NameVirtualHost *:80 и добавляем после нее NameVirtualHost *:443

Снова проверяем. Если ошибок нет, перезапускаем апач и заходим на сайт, прописав в адресной строке https, вместо http. Теперь ваш сайт доступен по протоколу https. Но пользователи сайта могут об этом не знать. Было бы разумным сделать переадресацию с открытого протокола на защищенный. Сделаем это.

Переадресация с http на https

Для того, чтобы сделать автоматическую переадресацию с http на https, необходимо в описании виртуального хоста в httpd.conf добавить порт 80 вместе с 443:

И в корне сайта с помощью.htaccess и mod_rewrite делаем перенаправление всех запросов с http на https:

# cat .htaccess RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}

Теперь даже если просто набрать адрес сайта с http откроется его защищенная версия https. Не забудьте проверить, включен ли у вас модуль mod_rewrite в настройках apache. И проверьте фаервол. Для корректной работы сайта по протоколу https необходимо открыть 443 порт на веб сервере.

TLS или безопасность транспортного уровня - предшественник SSL, отвечает за безопасность на уровне сокетов, по сути это защищённый протокол созданный для того, чтобы обеспечить безопасную передачу обычного сетевого трафика.

За счет этих протоколов информация может быть безопасно передана между двумя узлами не будучи при этом перехваченной и прочтённой третьими лицами. Также они отвечают за проверку подлинности домена и сервера, проверяя достоверность сертификата.

В этой статье я расскажу как создать самостоятельно подписанный сертификат SSL для Apache на базе Ubuntu 14.04, что позволит вам шифровать поступающий трафик. Хотя такой способ не обеспечивает проверки подлинности сервера, он позволяет пересылать информацию в защищенном режиме.

Требования

Прежде чем начать, требуется выполнить некоторые настройки. Пользователь, под которым мы будем работать должен иметь sudo привелегии. Также нам понадобится установленный Apache. Если вы его ещё не установили, то можете сделать это выполнив следующие команды:

Sudo apt-get update sudo apt-get install apache2

Шаг 1 - Активация модуля SSL

Пакет Apache для Ubuntu 14.04 по-умолчанию поддерживает SSL . Его достаточно просто активировать. Команда для активации модуля:

Sudo a2enmod ssl

После активации SSL следует перезапустить сервер для вступления в силу новых настроек:

Теперь наш веб сервер поддерживает SSL, осталось выполнить некоторые настройки.

Шаг 2 - создание подписанного сертификата SSL

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

Sudo mkdir /etc/apache2/ssl

Теперь создадим здесь ключ и сертификат одной командой:

Sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt

Давайте подробно разберёмся в параметрах команды:

  • openssl - основной инструмент для создания и управления сертификатами, ключами, запросами на подпись и т.д. для OpenSSL
  • req - этот параметр задаёт запрос на подпись сертификата X.509. X.509 - стандартная структура открытого ключа, которой придерживается SSL для управления ключами и сертификатами. Нам необходим этот параметр так как мы хотим создать новый сертификат.
  • -x509 - этот параметр указывает на то, что мы хотим создать самостоятельно подписанный сертификат.
  • -nodes - указывает на то, что мы не хотим создавать кодовую фразу. При создании кодовой фразы у вас могут возникнуть проблемы при автоматическом запуске Apache, так как каждый раз придется её вводить.
  • -days 365 - срок действия сертификата - один год.
  • -newkey rsa:2048 - этот параметр указывает на одновременное создание приватный ключа и запроса на сертификат. Это необходимо, так как мы не создали приватный ключ заранее. rsa:2048 - создает RSA ключ длиной 2048 бит.
  • -keyout - имя файла создаваемого приватного ключа.
  • -out - имя файла создаваемого сертификата.

После запуска этой команды вам предстоит ответить на несколько вопросов. Наиболее важный из которых - Common Name (e.g. server FQDN or YOUR name)". Здесь следует ввести доменное имя ассоциируемое с сертификатом, или открытый IP адрес при отсутствии доменного имени.

Вопросы выглядят примерно следующим образом:

Country Name (2 letter code) :RU State or Province Name (full name) :Moscow Locality Name (eg, city) :Moscow Organization Name (eg, company) :Your Company Organizational Unit Name (eg, section) :Department of Kittens Common Name (e.g. server FQDN or YOUR name) :your_domain.com Email Address :[email protected]

Ключ и сертификат будут созданы в каталоге /etc/apache2/ssl .

Шаг 3 - Настройка Apache для использования SSL

Теперь у нас есть сертификат и ключ и мы можем настроить Apache для использования этих файлов в файле виртуальных хостов. Вместо использования шаблона 000-default.conf мы воспользуемся шаблоном default-ssl.conf , который уже включает в себя некоторые необходимые настройки.

Откройте этот файл с правами root:

Sudo nano /etc/apache2/sites-available/default-ssl.conf

После удаления комментариев файл выглядит следующим образом:

ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key SSLOptions +StdEnvVars SSLOptions +StdEnvVars

Выглядит довольно сложно, но нам и не надо глубоко вникать в структуру этого файла. Для начала укажем обычные параметры, которые мы задаем при создании виртуального хоста (ServerAdmin, ServerName, ServerAlias, DocumentRoot и т.д.) и укажем место хранения SSL сертификатов. В итоге файл настройки должен выглядеть примерно следующим образом:

ServerAdmin [email protected] ServerName your_domain.com ServerAlias www.your_domain.com DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.crt SSLCertificateKeyFile /etc/apache2/ssl/apache.key SSLOptions +StdEnvVars SSLOptions +StdEnvVars BrowserMatch "MSIE " \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 BrowserMatch "MSIE " ssl-unclean-shutdown

Сохраните и закройте файл после исправления.

Шаг 4 - активация виртуального хоста с SSL

Теперь настало время включить наш виртуальный хост. Выполняем команду:

Sudo a2ensite default-ssl.conf

Перезапускаем Apache:

Sudo service apache2 restart

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

Шаг 5 - проверка

Итак, мы выполнили предварительную настройку, настало время проверить её. Заходим на наш сервер через протокол https://

Https://you_domain.com

Вы должны увидеть предупреждение о том, что невозможно проверить ваш сертификат, так как он не был подписан одной из известных удостоверяющих организаций. Этого следовало ожидать, так как мы самостоятельно подписывали свой сертификат. Хотя наш сертификат и не проходит проверку, так как он не был подписан удостовереяющей организацией, трафик все равно будет шифроваться.

Итак, нажимаем “Proceed anyway” (продолжить). Вы будете перенаправлены в корневой каталог вашего домена. Теперь ваш трафик зашифрован. Вы можете убедиться в этом увидев значок замка на панели меню.

Заключение

Ваш сайт теперь поддерживает SSL. Таким образом вы защищаете соединение между пользователями и вашим сайтом, но каждый раз пользователи будут видеть предупреждение о том, что сертификат невозможно проверить.

Если вы собираетесь запускать проект с использованием SSL, следует задуматься над приобретением SSL сертификата от удостоверяющего центра.



Просмотров