Как перенаправить HTTP на HTTPS на Apache
HTTP (Протокол передачи гипертекста) – популярный и основной протокол передачи данных в Всемирной паутине (WWW ); обычно между веб-браузером и сервером, на котором хранятся веб-файлы. Принимая во внимание, что HTTPS — это безопасная версия HTTP, где «S» в конце означает «Безопасный».
Используя HTTPS, все данные между вашим браузером и веб-сервером шифруются, что обеспечивает безопасность. Из этого туториала вы узнаете, как перенаправить HTTP на HTTPS на HTTP-сервере Apache в Linux.
Прежде чем вы сможете настроить перенаправление Apache с HTTP на HTTPS для своего домена, убедитесь, что у вас установлен SSL-сертификат и mod_rewrite . включен в Apache. Дополнительную информацию о настройке SSL на Apache см. в следующих руководствах.
- Как создать самоподписанные сертификаты и ключи SSL для Apache
- Как установить SSL-сертификат Let’s Encrypt на CentOS/RHEL 7
- Как установить SSL-сертификат Let’s Encrypt в Debian/Ubuntu
Перенаправление HTTP на HTTPS на Apache с использованием файла .htaccess
Для этого метода убедитесь, что mod_rewrite включен, в противном случае включите его в системах Ubuntu/Debian следующим образом.
sudo a2enmod rewrite [Ubuntu/Debian]
Для пользователей CentOS/RHEL убедитесь, что в httpd.conf есть следующая строка (поддержка mod_rewrite – включена по умолчанию).
LoadModule rewrite_module modules/mod_rewrite.so
Теперь вам просто нужно отредактировать или создать файл .htaccess в корневом каталоге вашего домена и добавить эти строки для перенаправления http на https.
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
Теперь, когда посетитель вводит http://www.yourdomain.com
, сервер автоматически перенаправляет HTTP на HTTPS https://www.yourdomain.com
.
Перенаправление HTTP на HTTPS на виртуальном хосте Apache
Кроме того, чтобы заставить весь веб-трафик использовать HTTPS, вы также можете настроить файл виртуального хоста. Обычно есть два важных раздела конфигурации виртуального хоста, если сертификат SSL включен; первый содержит настройки незащищенного порта 80.
Второй — для безопасного порта 443. Чтобы перенаправить HTTP на HTTPS для всех страниц вашего веб-сайта, сначала откройте соответствующий файл виртуального хоста. Затем измените его, добавив конфигурацию ниже.
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.yourdomain.com
Redirect / https://www.yourdomain.com
</VirtualHost>
<VirtualHost _default_:443>
ServerName www.yourdomain.com
DocumentRoot /usr/local/apache2/htdocs
SSLEngine On
etc...
</VirtualHost>
Сохраните и закройте файл, затем перезапустите HTTP-сервер следующим образом.
sudo systemctl restart apache2 [Ubuntu/Debian]
sudo systemctl restart httpd [RHEL/CentOS]
Хотя
является наиболее рекомендуемым решением, поскольку оно проще и безопаснее.
Возможно, вам будет интересно прочитать эти полезные статьи по усилению безопасности HTTP-сервера Apache:
- 25 полезных приемов Apache «.htaccess» для защиты и настройки веб-сайтов
- Как защитить паролем веб-каталоги в Apache с помощью файла .htaccess
- Как скрыть номер версии Apache и другую конфиденциальную информацию
- Защитите Apache от грубой силы или DDoS-атак с помощью Mod_Security и Mod_evasive
Вот и все! Чтобы поделиться своими мыслями по поводу этого руководства, воспользуйтесь формой обратной связи ниже. И не забывайте всегда оставаться на связи с linux-console.net.