Как установить SSL сертификат на свой веб-сервер (Apache2, Nginx). Как установить SSL-сертификат и перейти на https: пошаговая инструкция

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

становка на хостинг .masterhost

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

  • SNI (бесплатно) :
    Древо услуг - Домен - Поддержка SSL - Добавить.
  • Выделенный IP (140 рублей в месяц. Обычно требуется для работы с некоторыми платежными системами) :
    Древо услуг - Домен - Выделенный IP\SSL - Добавить. В выпадающем меню выбираете сертификат.

* Для обновления сертификата, например, после его продления, выполняете аналогичные действия: Древо услуг - Домен - Поддержка SSL или Выделенный IP\SSL (в зависимости от способа установки) - Изменить.

енерация (объединение) сертификата для Windows ПО

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

Сделать это можно так:

openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt

certificate.pfx - имя сертификата, который Вы получите в результате объединения;

privateKey.key - закрытый ключ;

certificate.crt - сам сертификат, который мы Вам выдали.

pache

  • Скопируйте файлы SSL сертификата на Ваш сервер.
  • Затем нужно найти файл конфигурации Apache для редактирования.

    Чаще всего подобные файлы конфигурации хранятся в /etc/httpd. в большинстве случаев основной файл конфигурации называется httpd.conf. Но в некоторых случаях блоки могут находиться в нижней части файла httpd.conf. Иногда Вы можете найти такие блоки как отдельно под директорией, к примеру, /etc/httpd/vhosts.d/ или /etc/httpd/sites/, или в файле, который называется ssl.conf.

    Прежде чем открывать файл в текстовом редакторе, Вы должны убедиться в наличии блоков в которых содержат настройки Apache.

  • Далее установите блоки SSL для задания конфигурации.

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

  • Затем создайте блоки для подключения SSL-соединения.

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

    DocumentRoot /var/www/html2 ServerName www.yourdomain.com SSLEngine on SSLCertificateFile /path/to/your_domain_name.crt SSLCertificateKeyFile /path/to/your_private.key SSLCertificateChainFile /path/to/root.crt Исправте имена файлов для согласования с файлами сертификатов:
    • SSLCertificateFile - файл Вашего сертификата (например: your_domain_name.crt).
    • SSLCertificateKeyFile - файл ключа, созданного при генерации CSR.
    • SSLCertificateChainFile - файл корневого сертификата.
  • Теперь проверьте конфигурацию Apache до перезапуска. Всегда лучше проверить файлы конфигурации Apache на ошибки до перезапуска. Так как Apache не запустится заново, если в файлах конфигурации будут фигурировать синтаксические ошибки. Для этого используйте следующую команду: apachectl configtest
  • А теперь можно перезапустить Apache.

ginx

  • Скопируйте файлы сертификата на сервер.

    Скопируйте Ваш сертификат (your_domain_name.crt) и корневой сертификат (root.crt) вместе с.key-файлом который Вы генерировали при создании CSR-запроса в директорию на Вашем сервере, куда Вы собираетесь установить сертификат. Для обеспечения безопасности, сохраняйте файлы с пометкой "только чтение".

  • Соедените сертификат с корневым сертификатом.

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

    cat root.crt >> your_domain_name.crt
  • Измените файл виртуального хоста Nginx.

    Откройте Ваш файл виртуального хоста Nginx для сайта, который Вы защищаете. Если Вам необходимо, чтобы сайт работал и с защищенным соединением (https), и с незащищенным (http), Вам нужен серверный модуль для каждого типа соединения. Сделайте копию существующего серверного модуля для незащищенного соединения и вставьте ниже оригинала. После этого добавьте строчки, которые приведены ниже жирным шрифтом:

    server { listen 443; ssl on; ssl_certificate /etc/ssl/your_domain_name.crt; (or .pem) ssl_certificate_key /etc/ssl/your_domain_name.key; server_name your.domain.com; access_log /var/log/nginx/nginx.vhost.access.log; error_log /var/log/nginx/nginx.vhost.error.log; location / { root /home/www/public_html/your.domain.com/public/; index index.html; } } Настройка имен файлов:
    • ssl_certificate - файл, содержащий основной и корневой сертификаты (шаг 2).
    • ssl_certificate_key - файл с ключем, который был сгенерирован при создании CSR.
  • Перезагрузите Nginx.

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

    sudo /etc/init.d/nginx restart

xchange 2010

  • Скопировать Ваш сертификат на Exchange сервер.
  • Затем запустить консоль управления Exchange данным образом: Start > Programs > Microsoft Exchange 2010 > Exchange Management Console.
  • Теперь нажмите "Manage Databases" и далее "Server configuration".
  • Далее выберите Ваш SSL сертификат из меню в центре окна, затем нажмите на "Complete Pending Request" в меню "Actions".
  • Откройте файл Вашего сертификата, после нажмите Open > Complete

    Exchange 2010 довольно часто выдает сообщение об ошибке, которая начинается фразой "The source data is corrupted or not properly Base64 encoded." Игнорируйте данную ошибку.

  • Далее вернитесь к консоли управления Exchange и нажмите "Assign Services to Certificate", чтобы начать использовать сертификат.
  • Из списка выберите Ваш сервер, нажмите "Next".
  • Теперь выберите сервисы, которые должны быть защищены сертификатом и нажмите Next > Assign > Finish. Теперь Ваш сертификат установлен и готов к использованию на Exchange.

Обратите внимание!

Если вы приобретаете SSL для работы магазина ВКонтакте, вам нужно покупать SSL для адреса вида "vk.домен" , например vk.mysite.ru

Если вы приобретаете SSL для работы магазина facebook, вам нужно покупать SSL для адреса вида "fb.домен" , например fb.mysite.ru

Если вы приобретаете SSL для работы платёжного сервиса, обратите внимание что для работы платёжного сервиса "Касса от ЯндексДенег" для сайтов на облаке (только), нет необходимости приобретать SSL

Немного о Secure Sockets Layer (SSL)

SSL (англ. Secure Sockets Layer — уровень защищённых сокетов)

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

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

SSL сертификат необходимо приобретать отдельно, за отдельную стоимость. Сертификат, в зависимости от типа, присваивается только к конкретной А записи.

Если магазин открывается как с www, по www.mysite.com, так и без www, по mysite.com, то SSL сертификат можно прикрепить только для одного из вариантов, либо приобрести 2 сертификата для каждого варианта. На страницы сайта и всякого рода ссылки данное правило не влияет, речь идет только о доменном имени, о А-записях.

При использовании SSL сертификата вы так же обращаетесь к странице не по http:// протоколу, а по https :// (добавляется буква s, secure)

Необходимые данные для сертификата

Главное требование которое нужно сделать до покупки сертификата - это создать (или проверить наличие) почтового ящика вида admin@домен.ru. Если такого почтового ящика у вас нет, то стоит заняться его созданием, т.к. без него не получиться завершить процедуру регистрации SSL сертификата.

Но, если, всё же, Вы по какой-то причине, решили сами пройти все этапы и самостоятельно зарегистрировать сертификат, то тут мы опишем шаги.

И так, чтобы зарегистрировать SSL, нам нужно приобрести сертификат через регистратора доменов, например https://www.reg.ru/

Сравнение сертификатов - https://www.reg.ru/ssl-certificate/

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

Обратите внимание!

Браузер Chrome, а так же смежные проекты на его базе (Opera, Microsoft Edge, Yandex Browser) отказываются от поддержки сертификатов выданных центром Symantec®, так же, все суббренды (GeoTrust®, Equifax®, Thawte®, RapidSSL® и VeriSign® включая сам Symantec®)
с 1 декабря 2017 года не считаются доверенными - мы крайне не рекомендуем их приобретать.

Для интернет магазина вполне подойдет сертификат от Comodo, под названием “Comodo SSL” рассмотрим его как пример.


Рисунок 2. Выбор типа сертификата. Цены на скриншоте могут отличатся как вверх так и вниз.


Рисунок 2.1 Выбор срока действия для сертификата.

Нажимайте на “выбрать”


Рисунок 3. Выбор адреса для сертификата.

Для этого нажимаем на кнопку "Получить CSR автоматически" и переходим на страницу генерации, где указываем данные, и, самое главное, сохраняем результат в 2 отдельных тестовых файла.

Это очень важно!

Сохраните (скопировать текст и вставить) коды приватного ключа и запроса.

Если вы пропустите сохранение, восстановить эти данные уже не получится, придется заново перевыпускать весь сертификат.

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

Пример полученного запроса (рис 4)


Рисунок 4. Пример, сгенерированного CSR запроса. Анкетные данные.

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

Далее необходимо заполнить все предлагаемые поля, в основном это контактные данные. В поле программное обеспечение сервера из списка выберите "Microsoft IIS 5.x" (возможно 6,7,8), либо если есть полное название, то выберите "Microsoft Internet Information Services" любой версии, роли не играет.

После того, как все поля заполнены, необходимо оплатить услугу и ждать уведомления на почтовый ящик admin@мойдомен.ru .

В письме будет ссылка, по которой необходимо перейти на нажать на “Утверждаю”, с этого момента начнется процедура выдачи сертификата (ответа). В среднем для "простого" SSL сертификата процедура может занять до 1 дня, но как правило, проходит быстрее, примерно за 10-20 минут.

По завершении выдачи, Вам придет ещё одно письмо с кодом ответа уже не на admin@мойдомен.ru, а на email который вы указали в анкете.

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

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

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


Рисунок 5. Пример сертификата.

После установки SSL на сайт можно обращаться по адресу https://сайт.ру

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

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

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

1. Покупаем SSL сертификат

В рамках данной статьи будем рассматривать сертификаты с подтверждением доменного имени и бесплатный let"s encrypt, который, к слову, подключён и к этому блогу.

Какой выбрать SSL сертификат для своего сайта?

Существует с десяток центров сертификации. Но самые популярные: Comodo, GeoTrust и GlobalSign.

Если не брать бесплатные варианты и самые дешёвые сертификаты, то для большинства случаев подойдут следующие:

  • Comodo Essential SSL – цена от 650 до 1500 рублей в год;
  • GeoTrust RapidSSL - цена от 650 до 1500 рублей в год;
  • GlobalSign DomainSSL - от 2000 до 3000 тысяч, но сильно цены не сравнивал по нему, скорей всего есть и дешевле.

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

Использование бесплатного сертификата Let’s Encrypt

Если проект не коммерческий и не несёт в себе какой-то любой другой функции, связанной с личными данными, регистрациями, введением паролей, то можно использовать бесплатный let"s encrypt. Он обладаем всеми соответствующими характеристиками.

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

Я для себя выбрал Comodo Essential SSL (покупаю по 650 рублей у ). Сложно сказать почему, наверно больше сыграл тот момент, что этот центр сертификации самый популярный в мире:

Важно знать:

  • Для кириллических доменов нужны сертификаты с поддержкой IDN;
  • Для установки платного сертификата необходимо иметь выделенный ip адрес, для бесплатного Let’s Encrypt это не обязательно.
  • Let’s Encrypt выдается на 90 дней и его надо будет переподписывать. Мой хостинг-провайдер () реализовал возможность автоматического продления, за что большое спасибо им!

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

2. Подготовка сайта для переезда на HTTPs

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

1 шаг. Устанавливаем новый адрес сайта в настройках WordPress
Эту замену можно сделать и в базе данных на втором шаге. Но могут возникнуть проблемы, если вы выбрали способ замены ссылок на относительные (подробнее ниже).

Замена адреса сайта в административной части WordPress (Настройки -> Общие).

//сайт/contact/
/contact/

http://сайт на https://сайт

Автозамена с помощью SQL команды в phpMyAdmin:

UPDATE wp_posts SET post_content = REPLACE (post_content, "http://сайт" , "https://сайт" ) ;

Если вы воспользовались этой командой, то знайте, что вам надо пройтись так по всем таблицам базы данных (кроме wp_options), так как ссылки ещё есть в таблице с комментариями и так далее. Я лично делаю бекап БД и меняю адреса сразу во всём файле.

Внимание!

Не меняйте ссылки на относительные во всей базе данных, относительными можно делать только для wp_posts (команда выше). Иначе вы замените url сайта в таблице wp_options и потом будут проблемы с авторизацией в админке.

Вот прочитал всё вышеописанное и пришёл к мнению - не надо в базе данных WordPress никаких относительных ссылок , будет меньше проблем! Пусть будут абсолютные.

2 шаг. Меняем все ссылки в шаблоне на относительные, либо на https
Для этого шага советую использовать опять notepad. Выкачать все файлы шаблона на локальный компьютер и автозаменой во всех файлах поменять адреса на относительные:

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

3 шаг. Мелкие правки по шаблону

Чтобы админка сайта на WordPress работала через защищённый протокол. Добавьте в файл wp-config код:

define ("FORCE_ SSL _ADMIN" , true ) ;

Решаем проблему со статистикой переходов в Яндекс Метрике. Необходимо на сайт добавить мета тег referrer , это даст возможность отдавать referrer тем посетителям, которые переходят с вашего сайта по ссылкам с не защищённым протоколом.

<meta name = "referrer" content = "origin" >

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

На заметку

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

3. Склеиваем сайт

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

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

RSA PRIVATE KEY и BEGIN CERTIFICATE

Если вы всё сделали правильно, то сайт должен быть доступен по двум протоколам. После чего можно переходить непосредственно к склеиванию http версии к https. Этот процесс можно разделить на четыре шага:

1. 301 редирект со старого на новый домен.
2. Добавление директивы Host и доступный файл Robots.txt для не главного зеркала
3. Сообщить поисковикам о ваших намерениях поменять главное зеркало сайта.
4. Просканировать сайт на наличие битых ссылок, ошибок.

1. Настраиваем перенаправление

Я сторонник сразу склеить сайты 301 редиректом, но существует мнение, да и сам Яндекс писал у себя на блоге , что лучше оставить две версии сайта доступными для поискового робота, при этом указать главное зеркало в директиве Host и в панели Вебмастера. А 301 редирект включить только после того, как версия c https будет признана главным зеркалом.

Может быть, такой подход и имеет смысл для действительно больших проектов, где несколько десятков тысяч страниц. Но во время переноса информационных сайтов, я не успел заметить серьёзных потерь в трафике, связанных именно с 301 редиректом. Яндекс склеивает сейчас действительно быстро, . За 2-3 недели пока идёт процесс склеивания, старые страницы просто не успевают выпасть из индекса за счёт 301 редиректа и трафик продолжает поступать. Изменение поискового трафика на одном информационном проекте:

28 апреля был установлен SSL сертификат с перенаправлением, а 14 мая Яндекс уже склеил зеркала

Код для 301 редиректа

3. Добавление сайт в панели Вебмастеров

В Яндекс Вебмастере заходите в раздел «Настройки индексирования – Переезд сайта», там добавляете главное зеркало. После удачного склеивания ваш основной сайт и его зеркало будет выглядеть вот так:

В консоли Google для веб-мастеров необходимо добавить новый сайт с https, подтвердить его и нажать на шестерёнку, а там выбрать «Изменение адреса»:

Сканируем сайт на ошибки

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

Даже если вы думаете, что везде заменили ссылки на относительные, всё много раз проверили. Я Вас уверяю, ошибки найдутся, особенно если сайт большой! Если на каких-то страницах всё равное не горит зелёный замочек или у вас перестали работать какие-то скрипты, плагины, то открывайте исходный код страницы и ищите все адреса с http .

Всё, осталось только ждать. Через 2-3 недели Яндекс полностью склеит сайты и в поисковой выдаче появится версия с защищённым протоколом HTTPs. Google потребуется примерно столько же времени.

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

Проверить установку и подлинность вы можете сервисом rus.gogetssl.com/check-ssl-installation . В сети много подобных сервисов, которые показывают уровень сертификата, ключ подписи, центр сертификации, срок действия и т. д.

Когда вы запускаете ваш собственный веб-сайт, ваши пользователи скорее всего должны будут оставлять там личную информацию. Это означает, что вам необходимо обеспечить соблюдение надежных стандартов безопасности, для обеспечения которой важную роль играют как Secure Sockets Layer (SSL или TLS) , так и Hypertext Transfer Protocol Secure (HTTPS) . К счастью, настройка на платформе WordPress SSL сертификата и установка HTTPS довольно проста и может быть выполнена всего за несколько шагов.

В этой статье мы поговорим о следующем:

  1. Какой сертификат SSL и когда нужно использовать.
  2. Что такое HTTPS и как он работает вместе с SSL.
  3. Как использовать WordPress SSL и настроить HTTPS с помощью двух разных методов.
  4. Две распространенные ошибки, с которыми вы можете столкнуться при использовании на WordPress SSL, и способы их устранения.

Нам предстоит узнать многое и будет ещё над чем поработать, так что, давайте уже приступим!

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

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

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

Что касается вашего собственного сайта, установка SSL сертификата является обязательной. Для этого есть :

  • Если вы запустите веб-сайт, на котором вы предлагаете пользователям регистрироваться и делиться конфиденциальной информацией, их данные будут в безопасности.
  • Ваш сайт будет более надежным.
  • Прикольный зелёный замочек появится рядом с адресом сайта в разных браузерах.
  • Вы улучшите поисковую оптимизацию вашего сайта (SEO) (англ).

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

Кроме того, Google объявил о том, что с момента появления в июле 2018 года Chrome показывает предупреждение “небезопасно”. Поэтому самое время обеспечить безопасность вашего сайта с помощью установки SSL сертификата, если вы ещё этого не сделали.

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

Для всех других типов сайтов бесплатный сертификат обычно выполняет всю работу. Более того, вы можете легко настроить его для работы с Hostinger (англ).

Что такое HTTPS (и как это работает вместе с SSL)

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

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

Если вы попытаетесь получить доступ к сайту без SSL с помощью HTTPS, вы увидите ошибку, подобную этой:

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

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

Как настроить на WordPress SSL и HTTPS (2 метода)

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

1. Используйте панель инструментов WordPress и переадресацию 301

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

В любом случае, ваш первый шаг должен состоять в том, чтобы зайти в панель управления и открыть вкладку Настройки> Общие . Внутри вы найдете два поля, которые называются WordPress Address (URL) и Site Address (URL) . Адрес вашего сайта должен быть идентичным в обоих полях, и должен использовать HTTP.

Что вам нужно сделать, это заменить префикс HTTP на HTTPS в обоих полях и сохранить изменения в ваших настройках:

Это всё, что нужно, чтобы настроить WordPress на использование HTTPS. Однако, некоторые пользователи могли сохранить старый URL вашего веб-сайта, и он может оставаться в сети. Вы должны убедиться, что эти пользователи используют HTTPS-версию вашего сайта. Для этого вы можете настроить переадресацию URL.

Как только вы подключитесь к своему сайту через FTP, перейдите в папку public_html и найдите файл .htaccess внутри:

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

Для этого вам нужно будет заменить URL-адрес в этом коде на полный HTTPS-адрес вашего сайта. Это перенаправит любое соединение, которое приходит через port 80 , на новый безопасный URL. Как вы знаете, port 80 является стандартным для HTTP-соединений, поэтому он “перехватит” практически всех, кто пытается получить доступ к вашему веб-сайту через старый адрес.

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

2. Установите плагин для WordPress SSL

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

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

Две распространённые ошибки в WordPress SSL (и как их исправить)

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

1. Некоторые файлы не загружаются через HTTPS

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

Если у вас возникла проблема с изображениями вашего сайта, CSS или JavaScript, самый простой способ решить её – сделать несколько дополнений к вашему файлу .htaccess . Однако этот подход применяется только в том случае, если вы использовали ручной метод из предыдущего раздела. Мы поговорим о том, что делать, если вы используете плагин вместо этого чуть позже.

Перейдите на свой веб-сайт через FTP ещё раз и найдите файл .htaccess в каталоге public_html . Откройте его и найдите ранее добавленный код, чтобы установить переадресацию 301. Это должно выглядеть следующим образом:

RewriteEngine On RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.yoursite.com/$1 }

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

RewriteEngine On RewriteCond %{SERVER_PORT} !^443$ RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L]

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

Если вы настроили свой сайт для использования HTTPS через плагин, вам не нужно вручную настраивать файл .htaccess . Вместо этого большинство плагинов предложит альтернативное решение. Например, Really Simple SSL может находить на вашем сайте файлы, которые не загружаются через HTTPS, и помогать вам их исправить. Чтобы использовать эту функцию, перейдите во вкладку «Настройки»> «SSL» , а затем перейдите на страницу настроек плагина:

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

2. Ваш плагин для кэширования WordPress вызывает проблемы

Если у вас установлен плагин для кеширования WordPress, ваш браузер может попытаться загрузить кешированную версию вашего веб-сайта по HTTP, что может привести к некоторым ошибкам. Самый быстрый способ решить эту проблему – очистить кеш в WordPress.

Как будет происходить процесс кэширования зависит от того, какой плагин вы используете. Тем не менее, это не займет у вас больше нескольких минут. Для получения более подробной информации вы можете ознакомиться с нашим в WP Super Cache (англ), W3 Total Cache (англ) и WP Fastest Cache (англ). Если вы используете другой плагин для кеширования, вам может потребоваться заглянуть в справку для получения инструкций о том, как действовать.

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

Вывод

Раньше WordPress SSL сертификаты были зарезервированы только для деловых веб-сайтов, которые сталкивались с большим количеством конфиденциальной информации. В наши дни сертификаты SSL и HTTPS стали обычным явлением. Фактически, сами поисковые системы, такие как Google, рекомендуют их использовать. К счастью, как вы видите, установка SSL сертификата и использование HTTPS для вашего сайта в WordPress – довольно простая задача.

У вас есть вопросы о том, как использовать WordPress SSL и настроить HTTPS? Давайте поговорим о них в разделе комментариев ниже!

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

Для установки сертификата потребуется:

  • Файл сертификата и цепочка сертификата . Центр сертификации присылает эти данные на почтовый ящик владельца сертификата.
  • Ключ сертификата. Он у вас должен быть. Ключ генерируется перед заказом сертификата, на основе ключа генерируется csr запрос.
  • Root доступ к серверу.

Инструкция по установке SSL-сертификата на домен средствами панели ISPmanager

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

1. Зайдите в ISPmanager под пользователем, которому принадлежит домен. Войдя под root"ом это можно сделать так: ISPmanager - Пользователи - выделите пользователя - нажмите "Вход" (справа вверху кнопка с изображением лестницы и двери).

Примечание: не забудьте для пользователя включить SSL (ISPmanager - Пользователи - двойной клик по пользователю - вкладка "Права")

2. В разделе World Wide Web - "SSL-сертификаты" - справа вверху кнопка "Создать". Укажите "Тип сертификата" - существующий и заполните все поля:

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

Приватный ключ - укажите содержимое файла приватного ключа

Сертификат - укажите содержимое файла SSL-сертификата

Пароль - указывайте, если ключ сертификата зашифрован (обычно не требуется)

Цепочка сертификатов - Certificate bundle: цепочка сертификатов, которыми подписан данный сертификат. Подробнее о цепочках, в зависимости от типа сертификата, можно узнать в специальной статье .

3. После успешного добавления сертификата в разделе "WWW домены" можно его включить для сайта (двойной клик - установить галочку "SSL" - выбрать из списка нужный сертификат)

4. Детальная проверка установленного сертификата доступна по ссылкам:

Ручная установка SSL сертификата

Веб-сервер Apache

Если ssl запросы обрабатывает Apache, то сертификат устанавливается в файле конфигурации Apache. Проверить какой веб сервис отвечает на 443 (ssl) порту можно командой:

  • Linux:
# netstat -napt | grep 443 tcp 0 0 188.120.233.16:443 0.0.0.0:* LISTEN 731/apache2
  • FreeBSD:
# sockstat |grep 443 root httpd 83299 19 tcp4 188.120.225.20:443 *:*

Для установки сертификата откройте конфигурационный файл Apache. На FreeBSD это /usr/local/etc/apache22/httpd.conf. Debian - /etc/apache2/apache2.conf. Centos - /etc/httpd/conf/httpd.conf. Найдите VirtualHost вашего домена.

Иногда вы можете найти блоки в отдельных файлах, в директории веб сервера.

Создайте блок для подключения SSL соединения. Пример:

DocumentRoot /var/www/user/data/www/domain.com ServerName domain.com SSLEngine on SSLCertificateFile /path/to/domain.crt SSLCertificateKeyFile /path/to/domain.key SSLCACertificateFile /path/to/ca.crt

  • /var/www/user/data/www/domain.com - путь до домашней директории вашего домена.
  • /path/to/ca.crt - файл корневого сертификата.

Перезапустите Apache командой apachectl restart или apache2ctl restart

Веб-сервер Nginx

Если ssl запросы обрабатывает Nginx, то сертификат устанавливается в файле конфигурации Nginx.

Откройте конфигурационный файл Nginx. На Linux - /etc/nginx/nginx.conf

Создайте серверный модуль для SSL соединения. Пример:

Server { listen 10.0.0.1:443; server_name domain.com; ssl on; ssl_certificate /path/to/domain.crt; ssl_certificate_key /path/to/domain.key ; }

  • domain.com - имя вашего домена.
  • 10.0.0.1 - ip адрес, на котором находится домен.
  • /path/to/domain.crt - файл, в котором находится сертификат.
  • /path/to/domain.key - файл, в котором находится ключ сертификата.

Цепочка сертификатов дописывается в файл с сертификатом.

Возьмем пример с Comodo Positive SSL. Центр сертификации присылает файлы domain.crt, PositiveSSLCA2 и AddTrustExternalCARoot. Цепочкой сертификата будет содержание файла PositiveSSLCA2 + AddTrustExternalCARoot. В итоге файл domain.crt должен содержать сертификат домена + сертификаты PositiveSSLCA2 + AddTrustExternalCARoot.

Перезапустите Nginx

  • Linux:
/etc/init.d/nginx restart

Несколько SSL сертификатов на одном ip адресе

Если используется несколько сертификатов на одном ip адресе, то браузер получит сертификат сервера по умолчанию, независимо от запрашиваемого имени сервера. Это связано с поведением протокола SSL. SSL-соединение устанавливается до того, как браузер посылает HTTP-запрос, и веб сервер не знает имени запрашиваемого сервера. Следовательно, он лишь может предложить сертификат сервера по умолчанию.

Решение для работы нескольких HTTPS-серверов на одном IP-адресе - расширение Server Name Indication протокола TLS (SNI, RFC 6066), которое позволяет браузеру передать запрашиваемое имя сервера во время SSL handshake, а значит сервер будет знать, какой сертификат ему следует использовать для соединения. Почти все современные браузеры поддерживают SNI, однако чтобы использовать SNI, соответствующая поддержка должна присутствовать также в библиотеке OpenSSL. OpenSSL поддерживает SNI начиная с версии 0.9.8f.

Полезные команды Openssl

  • Создание ключа для SSL-сертификата.
openssl req -batch -noout -new -newkey rsa:2048 -nodes -keyout cert.key
  • Генерация CSR-запроса:
openssl req -new -key cert.key -out cert.csr
  • Убрать пароль с ключа:
openssl rsa -in cert.key -out cert.key
  • Посмотреть данные CSR:
openssl req -noout -text -in cert.csr
  • Данные сертификата (проверить кем выдан, например):
openssl x509 -noout -text -in cert.crt
  • Проверить, что ключ соответствует сертификату:
openssl x509 -noout -modulus -in cert.crt | openssl md5 openssl rsa -noout -modulus -in cert.key | openssl md5

Два значения должны совпадать.

  • Узнать длину запроса:
echo "(" `openssl req -noout -modulus -in cert.csr | cut -d"=" -f2 | wc -c` "-1)*4" | bc
  • Проверить выдачу HTTPS:
openssl s_client -host ulanovka.ru -port 443

Создание CSR запроса для Microsoft IIS

  • Нажмите на имя сервера.
  • Затем справа из меню Actions выберите Create Certificate Request. Откроется окно мастера создания запроса.

  • Введите всю необходимую информацию.

Нажмите Next.

  • Введите имя вашего CSR файла.

  • Откройте файл, используя текстовый редактор. Для оформления сертификата передайте свой CSR вместе с тэгами BEGIN и END.

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

  • Нажмите Start - Administrative Tools - Internet Information Services (IIS) Manager.
  • Нажмите на имя сервера.
  • В разделе IIS откройте Server Certificates.
  • Затем справа из меню Actions выберите Complete Certificate Request. Откроется окно мастера.

  • Загрузите выданный Вам центром сертификации сертификат. Затем введите имя сертификата (оно необходимо только администратору для дальнейшей работы).

  • Нажмите Оk, и сертификат будет установлен на сервер.
  • Для того, чтобы установить данный сертификат на нужный веб-домен, перейдите в раздел Sites и выберите сайт, для которого заказан сертификат. Из меню Actions в правой части страницы нажмите на Bindings. Откроется окно Site Bindings.

  • В окне Site Bindings нажмите Add... Откроется окно Add Site Binding.

  • В меню Type выберите https. В меню IP address должен быть IP адрес сайта или All Unassigned. Порт - 443. В поле SSL Certificate выберите Ваш сертификат.

Нажмите Ok.

  • Ваш сертификат установлен.