Создал свой первый проект Tribute в рамках курса «Responsive Web Design» на freeCodeCamp и тут оказывается, что экзаменационная машина не принимает ссылки на сайты с http!!! Пришлось поставить HTTPS с помощью бесплатного сервиса SSL For Free.
Прошло все очень легко — регистрируешься, говоришь домен, получаешь архив с сертификатом (certificate.crt
), секретным ключом (private.key
) и дополнительный (ca_bundle.crt
). В панели управления сайтом в разделе ключей все три указать и перевести сайт на HTTPS режим.
Все вроде заработало. Вбил в адресную строку https://dasdev.ru, но вижу, что замочек пишет, что не всё работает — какие-то ресурсы качаются по http — оказалось у меня железно был прописан адрес к картинкам с протоколом http. Поменял — на https — все заработало.
Остался только один момент — сделать жесткое перенаправление всех запросов на http в запросы по https. Для этого надо добавить несколько строчек в файл .htaccess
:
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{ENV:HTTPS} !on RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] </IfModule> <IfModule mod_headers.c> Header always set Content-Security-Policy "upgrade-insecure-requests;" </IfModule>
Предварительно в разделе настроек веб-сервера панели управления хостингом нужно включить модуль headers_module.
N.B. Бесплатный SSL-сертификат всем хорош, но его надо обновлять раз в три месяца руками или специальным ботом. Пока сделал установку руками. К боту вернусь позже. А пока сделаю себе ссылку на ещё один вариант бесплатного сервиса Let’s Encrypt, где подробно расписано, как всё настраивать.