Корпорация Google уже неоднократно заявляла о том, что будет выше ранжировать сайты, которые работают через защищённое соединение. Firefox очень быстро подключился к этой теме и всячески пытается предупредить своих пользователей о том, что их данные могут оказаться в опасности если попытаться ввести логин и пароль на сайте без SSL шифрования.
Таким образом, если у вас есть форум или система комментирования, но сайт работает через не защищенное соединение, то пользователи у которых Firefox будут видеть то, что я показал на скриншоте выше. А это отпугивает посетителей. Поэтому сегодня будем решать эту проблему.
Ранее я уже писал статью о том как заставить работать в связке Apache2 и Nginx, где первый выступает в роли бэкэнда, а второй в роли фронтэнда. И если ваш сайт работает именно в такой связке, то я расскажу в сжатой и доступной форме как защитить передаваемый трафик между сервером и клиентом, используя механизм SSL шифрования.
Для начала вам потребуется сам . Без него никак не получится перевести сайт на защищенное соединение. Если он у вас уже есть, то далее всё очень просто.
И так, открываем конфигурационный файл Nginx, а именно nginx.conf
. Для начала сразу добавим конфигурацию для редирект с http на https. Для этого перед секцией server своего сайта добавляем:
server {
listen 11.22.33.44:80;
server_name intaiwan.ru www.intaiwan.ru;
rewrite ^(.*) https://$host$1 permanent;
}
На этом всё. Редирект с http на https мы настроили. Теперь переходим ниже, в саму секцию server нашего сайта. Там нам необходимо заменить строчку
listen 11.22.33.44:80;
на
listen 11.22.33.44:443 ssl;
а ниже добавляем строки:
ssl_certificate /папка/папка2/папка3/intaiwan.ru.pem;
ssl_certificate_key /папка/папка2/папка3/intaiwan.ru.key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_buffer_size 4k;
Таким образом, настройка редиректа с http на https и защищённого соединения у нас должен выглядеть примерно так:
server {
listen 11.22.33.44:80;
server_name intaiwan.ru www.intaiwan.ru;
rewrite ^(.*) https://$host$1 permanent;
}
server {
listen 11.22.33.44:443 ssl;
server_name intaiwan.ru www.intaiwan.ru;
charset UTF-8;
error_page 404 = @fallback;
ssl_certificate /папка/папка2/папка3/intaiwan.ru.pem;
ssl_certificate_key /папка/папка2/папка3/intaiwan.ru.key;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
ssl_buffer_size 4k;
location / {..
...
...
}
}
А теперь нам необходимо внести небольшую запись в настройки Apache в секцию VirtualHost нашего сайта:
SetEnvIf X-Forwarded-Proto https HTTPS=on
Однако необходимо учитывать один важный момент. Вам необходимо будет переписать пути до картинок, стилей и скриптов с http на https. Иначе страницы будут отображаться с ошибками.