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

Главная / Бизнес

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

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

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

Наверняка все уже слышали о безопасном протоколе HTTPS и необходимости перехода на него. Все крупные порталы, банки, интернет-магазины давно перешли на HTTPS, вот и нам пришло время заняться этим.

Содержание

Для переезда на защищенный протокол HTTPS надо установить и настроить SSL сертификат на блог.

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

Этап 1. Настройка SSL сертификата на стороне хостинга

Сегодня, наверное все хостинги, предоставляют бесплатные SSL сертификаты для своих клиентов. В частности мои сайты находятся на , который бесплатно предоставляет SSL сертификат: SSL Let"s Encrypt. Вот его мы и будем устанавливать на сайт созданный на платформе WordPress. Вот так выглядит сайт в разных браузерах, пока не установлен SSL сертификат:

Итак начнем настройку сертификата SSL на сайте, я буду устанавливать на своем тестовом домене.

Заходим в панель управления хостинга TimeWeb, далее меню Дополнительные услуги:

В появившемся окне нажимаем SSL-сертификаты, нам выбор возможных сертификатов и наших доменов. Соответственно выбираем из списка сертификат SSL Let’s Encrypt (0 руб.) и нужное доменное имя.

После нажатия кнопки заказать выдает сообщение:

Заказ на SSL-сертификат успешно отправлен. О завершении установки сертификата будет выслано почтовое уведомление.

По истечении нескольких минут в списке подключенных услуг появится наш SSL сертификат:

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

Режим безопасного соединения

На этом первый этап установки SSL сертификата на сайт завершен, переходим ко второму этапу — внутренней настройке сайта.

Этап 2. Восстанавливаем внешний вид сайта

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

Но прошу не паниковать, таблетка есть. Для этого необходимо вставить одну строку кода в файл.htaccess. Это процедуру необходимо проделать для всех хостингов.

На Таймвэбе действия такие: меню Файловый менеджер — находим Ваш сайт — папка public_html — редактирование файла .htaccess :

Открываем файл.htaccess на редактирование и в самый конец вставляем такую строку:

SetEnvIf X-HTTPS 1 HTTPS

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

Этап 3. Настройка блога после переезда на HTTPS

Для устранения проблемы входа в админ панель, в файл wp-config.php необходимо внести такую строку:

define (‘FORCE_SSL_ADMIN’, true);

Найди файл wp-config.php легко, он находится в том же каталоге где и.htaccess:

Вот мы подошли к последнему этапу перевода нашего сайта на безопасный протокол HTTPS.

Этап 4. Решаем проблему смешанного контента

Настройка ssl сертификата прошла успешно, перевод сайта на безопасный проток сделали, но все равно нет заветного зеленого замочка, почему? А все потому что в нашей базе есть ссылки с протоколом HTTP, т.е. на сайте присутствует смешанный контент. Для браузер очень важно, чтобы абсолютно все ссылки были защищенными, только тогда он считает страницу защищенной.

Решить данную проблему можно несколькими способами:

  • изменить все ссылки в базе данных вручную

Все очень просто в строку поиска вводите НTTP/ HTTPS Remover, устанавливаете и активируете плагин. Никаких дополнительных настроек не нужно.

После этого действия закончена настройка ssl сертификата и наш сайт полностью переведен на защищенный протокол HTTPS. Осталось сообщить поисковым системам о нашей проделанной работе.

Этап 5. Информирование поисковых систем

Редактирование robots.txt

В первую очередь необходимо внести изменение в файл robots.txt. Сделать это можно на хостинге таким же способом как мы редактировали файлы.htaccess и wp-config.php. Отредактируйте как у меня на картинке:

Не забываем сохранять изменения.

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

Подтверждение в Google webmaster

Идем далее по нашему плану в переходе сайта на защищенный протокол. Следующий шаг — подтверждение прав в Google webmaster. Заходим по ссылке , добавляем, именно добавляем новый сайт с протоколом HTTPS (старый оставляем нетронутым) и подтверждаем на него свои права.

Либо подтвердите свои права старым добрым способом, загрузите в каталог своего сайта файл html. Далее необходимо добавить карту сайта, т.к. на этом этапе Search Console их не видит. Нажимаем на «Файлы Sitemap отсутствуют» — ДОБАВЛЕНИЕ/ПРОВЕРКА ФАЙЛА SITEMAP.

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

Этап 6. Проверка правильности настройки SSL сертификата

Для проверки правильности установки SSL сертификата на.блог можно воспользоваться сервисом https://www.sslshopper.com/ssl-checker.html . В строку проверки пропишите доменное имя своего сайта и радуйтесь результатом своего труда:

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

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

P.S . Обратите внимание на страницу , на которой собраны БЕСПЛАТНЫЕ курсы по созданию сайта и заработку в интернете.

С Уважением Дмитрий Леонов.

Новости блога Получай обновления первым!

Итак, вы приобрели SSL-сертификат для вашего домена. В процессе заказа вы должны были выбрать авторизационный email, расположенный на вашем домене: admin, administrator, hostmaster, postmaster, webmaster. На выбранный вами авторизационный email придет письмо содержащее ссылку, пройдя по которой, вы подтвердите ваши административные права домена. После этого на ваш контактный электронный почтовый ящик аккаунта поступит несколько писем.

Имеются следующие файлы:

Приватный ключ (для удобства сохраните его в виде простого текстового файла с именем ваш_домен.key)

Файл сертификата для вашего домена, ваш_домен.crt

Два файла цепочки сертификатов PositiveSSLCA2.crt и AddTrustExternalCARoot.crt

В этом руководстве пошагово описаны способы привязки SSL-сертификата к сайту для организации безопасного шифрованного соединения между веб-сервером и браузером клиента.

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

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


1. Войдите в ISPmanager под учетной записью "root". (Если вы заказали VPS сервер на тарифе с администрированием нашими специалистами, то данный шаг необходимо пропустить)

Войдите в меню "Учетные записи" → "Пользователи", выберите пользователя-владельца сайта, к которому требуется привязать SSL-сертификат, и нажмите кнопку "Изменить".


В появившемся установите галочку "Может использовать SSL", если она еще не установлена.


Сохраните изменения кнопкой "Ok".

Дальнейшие действия мы будем выполнять от имени созданного пользователя-владельца сайтов. Снова выберите вашего пользователя-владельца сайта и нажмите кнопку "Войти" в правом верхнем углу, ISPmanager автоматически понизит ваши привилегии до его уровня.


2. Перейдите в раздел "WWW" → "WWW-домены". В списке отображаются все добавленные в конфигурационные файлы веб-сервера домены, в колонке "Параметры" иконками отображается наличие или отсутствие тех или иных модулей веб-сервера, которые участвуют в обработке запросов к сайту. Необходимо подключить модуль для работы с SSL для сайта, для этого выберите домен и нажмите кнопку "Изменить" сверху.


Откроется новая вкладка, в которой нужно установить галочку "Защищённое соединение (SSL)" и "Перенаправлять HTTP-запросы в HTTPS" и сохранить изменения кнопкой "Ok". Обратите внимание, желательно чтобы этот домен был единственным доменом с SSL на этом IP-адресе.


3. Теперь перейдем в раздел "WWW" → "SSL сертификаты", здесь показаны все имеющиеся на сервере сертификаты безопасности, отсюда мы добавим наш. Обратите внимание на наличие самоподписанного сертификата для вашего домена - он был сгенерирован ISPmanager-ом автоматически на предыдущем шаге, в момент когда вы установили галочку "SSL" в настройках WWW-домена. Этот сертификат использоваться не будет, мы добавим наш, сделать это можно кнопкой "Создать" сверху.


На первом шаге выберете тип сертификата "существующий".


На втором шаге вам необходимо будет ввести имя сертификата, сам сертификат, приватный ключ сертификата и подтверждающую цепочку. Откройте в "Блокноте" все имеющиеся у вас файлы: приватный ключ, который мы сохранили в файл ваш_домен.key, файл сертификата ваш_домен.crt и другие два. В форму ввода "SSL-сертификат" скопируйте содержимое файла ваш_домен.crt; в форму "Ключ SSL-сертификата" скопируйте текст из файла ваш_домен.key. В форму "Цепочка SSL-сертификатов" последовательно скопируйте содержимое файлов PositiveSSLCA2.crt и AddTrustExternalCARoot.crt, именно в этом порядке. Нажмите кнопку "Завершить" для сохранения введенных данных.


В открывшемся окне в поле "SSL-сертификат" выберете добавленный вами в предыдущем шаге сертификат и подтвердите изменения кнопкой "Ok".


5. Перейдите на ваш сайт, для работы по шифрованному соединению в адресной строке браузера впишите адрес наподобие "https://ваш_домен.ru/". Аббревиатура "https" означает работу по шифрованному протоколу HTTP, что нам и требуется. Если все сделано правильно, браузер не будет выдавать никаких предупреждений или сообщений о потенциальных угрозах, а сразу отобразит сайт. В адресной строке при этом тем или иным способом будет обозначен факт того, что передаваемые данные шифруются и сертификат подтвержден.


Настройка закончена. Следует, однако, иметь в виду, что при каких-либо изменениях в ПО веб-сервера (его переконфигурирование, смена IP-адреса домена, установка nginx перед Apache например) эта схема работы может нарушиться. В этом случае возможно придется внести соответствующие коррективы в конфигурационные файлы веб-сервера вручную.
Если у вас возникнут какие-либо вопросы при добавлении сертификата к вашему сайту - техническая поддержка всегда будет рада помочь вам, напишите пожалуйста письмо на адрес support@сайт с контактного e-mail вашего сервера.

Установка сертификата утилитами из консоли: CentOS, Apache 2

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

1. Поместите все 4 файла (приватный ключ, сохраненный в файле ваш_домен.key , и файлы сертификатов ваш_домен.crt , PositiveSSLCA2.crt и AddTrustExternalCARoot.crt


# cat /var/www/httpd-cert/PositiveSSLCA2.crt /var/www/httpd-cert/AddTrustExternalCARoot.crt > -bundle

# openssl verify /var/www/httpd-cert/ваш_домен.crt-bundle


5. В конфигурационном файле Apache 2 (наиболее вероятно - /etc/httpd/conf/httpd.conf) создайте новый VirtualHost на 443м порту. Ниже приведены только директивы, отвечающие за работу с сертификатом, остальные можно скопировать по аналогии из имеющегося для 80-го порта:

SSLEngine on
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
SSLCertificateFile /var/www/httpd-cert/ваш_домен.crt
SSLCertificateKeyFile /var/www/httpd-cert/ваш_домен.key
SSLCACertificateFile /var/www/httpd-cert/ваш_домен.crt-bundle
ServerName ваш_домен
...

6. Проверьте корректность синтаксиса конфигурационного файла:
# /etc/init.d/httpd configtest
Syntax OK
Перезапустите Apache и проверьте работу сайта с https://, если все сделано правильно - в адресной строке при этом тем или иным способом будет обозначен факт того, что передаваемые данные шифруются и сертификат подтвержден.

Установка сертификата утилитами из консоли: CentOS, nginx

1. Поместите все 4 файла (приватный ключ, сохраненный в файле ваш_домен.key, и файлы сертификатов ваш_домен.crt , PositiveSSLCA2.crt и AddTrustExternalCARoot.crt ) в директорию /var/www/httpd-cert/.

2. Установите владельца и группу всех файлов в root:
# chown root:root /var/www/httpd-cert/ваш_домен.key /var/www/httpd-cert/ваш_домен.crt /var/www/httpd-cert/PositiveSSLCA2.crt /var/www/httpd-cert/AddTrustExternalCARoot.crt

3. Установите права на файл ключа "только для владельца, только для чтения":
# chmod 400 /var/www/httpd-cert/ваш_домен.key

4. Создайте файл цепочки сертификатов:
# cat /var/www/httpd-cert/AddTrustExternalCARoot.crt >> /var/www/httpd-cert/ваш_домен.crt
# cat /var/www/httpd-cert/PositiveSSLCA2.crt >> /var/www/httpd-cert/ваш_домен.crt
Проверить подлинность цепочки сертификата можно так:
# openssl verify /var/www/httpd-cert/ваш_домен.crt
/var/www/httpd-cert/ваш_домен.bundle: OK
Посмотреть информацию об сертификате - например так:
# openssl x509 -text -in ваш_домен.crt

5. Внесите в конфигурационный файл nginx, в модуль server, следующие директивы:
server {

Ssl on;
ssl_certificate /var/www/httpd-cert/ваш_домен.crt;
ssl_certificate_key /var/www/httpd-cert/ваш_домен.key;

Server_name your.domain.com;
...
}
Обратите внимание, что это должен быть первый, и желательно единственный VirtualHost на этом IP-адресе на 443 порту.

6. Перезапустите nginx командой
# /etc/init.d/nginx restart
и проверьте работу сайта с 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 сертификата он ожидал только улучшение работы своего веб-проекта. Наша поддержка решила разобраться с ошибками конфигурации и помочь Алексею на самом деле защитить данные посетителей его сайта.

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

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

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

Пройдя проверку и получив файлы сертификата, Алексей взялся за его установку. Он шаг за шагом следовал руководству по установке. Но что-то пошло не так… Страница начала загружаться медленней, временами была недоступной, и, как выяснилось в тесте от Qualys SSL Labs, не была действительно защищенной. Что же произошло?

Ошибки конфигурации из-за устаревшего руководства

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

Например, в инструкции отсутствовало указание, что нужно отключить SSL 3-й версии. Уже давно известно о небезопасности протоколов шифрования SSLv3 и RC4, и существует достаточно альтернатив для них. В октябре 2015 года поисковый гигант Google решил попрощаться с этими небезопасными стандартами. Поэтому мы посоветовали Алексею отключить эти SSL-протоколы и использовать TLS в версиях 1.0, 1.1 и 1.2.

Конфигурация SSL при обмене ключами

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

Cookies также следует защищать

Алексей решил использовать файлы Cookies. Он добавил соответствующее предупреждение для посетителей сайта и указал на использование этого технологии в Политике конфиденциальности.

Тем не менее, он не заметил одну деталь: файлы cookies также необходимо защищать, в противном случае возрастает возможность проведения MITM-атаки. С помощью специальных флагов можно установить, будут ли cookies передаваться по защищенному HTTPS-соединению или по незащищенному HTTP-соединению.

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

Использование HSTS для устранения ошибок

Как мы видим, возможность управлять зашифрованными сайтами через HTTP, то есть по незащищенному каналу, открывает большую дыру в безопасности. Эту проблему можно решить с помощью механизма HSTS. HSTS (сокращенно от «HTTP Strict Transport Security») – это технология, которая принудительно активирует защищенное HTTPS-соединение. Все современные браузеры используют HSTS как стандарт. Активированный HSTS устанавливает, что (HTTP-)сервера должны использовать защищенное соединение. Также HSTS-стандарт обязывает прикладные программы взаимодействовать с сайтом только по зашифрованному каналу. В двух словах: HSTS предотвращает использование HTTP и активирует HTTPS-соединение.

OCSP для увеличения секретности

SSL сертификат Алексея содержит URL-адрес ответчика OCSP , которым управляет центр сертификации, выдавший SSL сертификат. Этот URL-адрес проверяется браузерами при установлении соединения с сайтом по протоколу HTTPS, чтобы определить, не отозван ли сертификат. Таким образом, можно исключить его неправомерное использование. После того, как соединение с веб-сайтом установлено, отправляется следующий запрос на OCSP-ответчик. Даже это краткое описание процесса показывает, что дополнительное соединение с ответчиком обеспечивает более высокий уровень секретности.

С помощью метода «OCSP-Степлинг» можно решить проблемы, вызванные OCSP. Через определенные промежутки времени, например, каждый час, веб-сервер получает OCSP-ответ о состоянии собственного сертификата. Этот ответ отправляется непосредственно браузеру пользователя при первичном рукопожатии. Соединение между браузером пользователя и OCSP-ответчиком с этой целью не требуется. Безопасность процесса обеспечивается тем, что ответ OCSP–ответ всегда подписан OCSP-ответчиком центра сертификации, и эту подпись проверяет браузер.

HPKP — пиннинг открытого ключа

Можно ли доверять сертификату из цепочки корневого и промежуточных сертификатов? Чтобы получить ответ на этот вопрос, используется процедура, называемая HPKP, сокращенно от HTTP Public Key Pinning. Пиннинг открытого ключа позволяет определить, когда открытый ключ сертификата был изменен для определенного хоста. Это может произойти со скомпрометированными сертификатами. Таким образом, HPKP становится механизмом, который проверяет подлинность сертификатов SSL/TLS.

Правильная настройка SSL сертификата: инструкции, которым можно доверять

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

  • используйте безопасное HTTPS-соединение для всех веб-сервисов;
  • автоматическое перенаправление: чтобы избежать незашифрованных обращений к серверу, настройте автоматическое перенаправление на HTTPS-версию;
  • библиотеки TLS: полагайтесь только на последние версии. При использовании TLS вы никого не исключаете, но если вы применяете незащищенный SSL, вы также включаете и потенциальных хакеров;
  • настройте HSTS, чтобы гарантированно исключить незашифрованные соединения. Это можно сделать двумя способами: во-первых, вы можете дополнить заголовок HSTS так, чтобы браузер обращался только к HTTPS-версии сайта. Во-вторых, вы можете поместить свой сайт в список предварительной загрузки HSTS. Он оповещает современные браузеры, что HTTP-обращения необходимо автоматически перенаправлять на HTTPS;
  • заказывайте SSL/TLS сертификаты только на доверенных сайтах;
  • лучше всего заказывайте SSL сертификаты с расширенной проверкой (

С каждым днем необходимость в защищенном соединения стает все острее. Во-первых, это более безопасная работа с сайтом, потому что все данные передаются в шифрованном виде, во-вторых, это зелёный замочек рядом с адресом сайта, что вызывает некое доверие к порталу, в-третьих, по заявлению представителей 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:” из подключаемых файлов, то есть сделать так.



© 2024 solidar.ru -- Юридический портал. Только полезная и актуальная информация