Сертификат SSL нужен сайту для обеспечения защищенного соединения. Необходим для использования платежных шлюзов, например Яндекс.Касса.
Получение сертификата SSL
Первым делом нужно получить сертификат: купить, либо получить бесплатно на китайском сайте.
https://buy.wosign.com/free/#ssl
Указываем домен для которого требуется сертификат, период действия сертификата (доступно до 3- лет), и регистрируем аккаунт (либо входим в свой).
Подтверждаем что сайт наш загрузив предложенный файл site.ru.html в корневую директорию.
В всплывающем окне Generate the Certificate Signing Request(CSR) выбираем Option 1:Generate CSR by the system, придумываем и вводим пароль сертификата (!сохраняем его). Когда сертификат будет готов — скачиваем его.
Установка сертификата
Разархивируем скачанный архив, для этого потребуется созданный нами пароль сертификата. В архиве созданы сертификаты для различных хостинг движков (Apache, Nginx и т.д.)
Устанавливаем сертификат на хостинге — обычно там есть для этого специальный интерфейс.
Для того чтобы сайт всегда переадресовывался на протокол HTTPS (не обязательно): нужно вставить в htacces следующее после строки # END WordPress (иначе при обновлениях будет затерт)
RewriteCond %{HTTPS} =off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
Для хостинга Reg.ru:
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Если сертификата нет, но по каким то причинам браузер переходит на сайт добавляя HTTPS ругаясь что сайт не надежный — можно наоборот отключить переадресацию на HTTPS
<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} =on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]
</IfModule>
Переадресация на https в сети Мультисайт
т.к. в системе Мультисайт у нас только один файл .htaccess в корне главного сайта, правило переадрессации немного отличается от стандартного. Нужно прописать это правило перед всеми записями:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Смешанный контент (Mixed content)
Когда сайт открывается уже по протоколу https, а в адресной строке еще нет зеленой иконки с замком и в средствах разработчика показаны ресурсы на которые ссылается сайт (у которых еще протокол http) — вес эти ссылки меняем на https.
В базе данных необходимо заменить все ссылки в ресурсах (записях, страницах, категориях и т.д.)
UPDATE wp_posts SET post_content = replace(post_content, 'http://opttour.ru', 'https://opttour.ru');
Сертификат Let’s Encrypt™
Let’s Encrypt™ — это бесплатный SSL сертификат. Интерфейс по его установке на домен довольно прост и уже доступен на многих хостингах. Данный сертификат работает исправно.