Поиск по сайту:

Как перенаправить HTTP на HTTPS на Apache


HTTP (Протокол передачи гипертекста) – популярный и основной протокол передачи данных в Всемирной паутине (WWW ); обычно между веб-браузером и сервером, на котором хранятся веб-файлы. Принимая во внимание, что HTTPS — это безопасная версия HTTP, где «S» в конце означает «Безопасный».

Используя HTTPS, все данные между вашим браузером и веб-сервером шифруются, что обеспечивает безопасность. Из этого туториала вы узнаете, как перенаправить HTTP на HTTPS на HTTP-сервере Apache в Linux.

Прежде чем вы сможете настроить перенаправление Apache с HTTP на HTTPS для своего домена, убедитесь, что у вас установлен SSL-сертификат и mod_rewrite . включен в Apache. Дополнительную информацию о настройке SSL на Apache см. в следующих руководствах.

  1. Как создать самоподписанные сертификаты и ключи SSL для Apache
  2. Как установить SSL-сертификат Let’s Encrypt на CentOS/RHEL 7
  3. Как установить 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:

  1. 25 полезных приемов Apache «.htaccess» для защиты и настройки веб-сайтов
  2. Как защитить паролем веб-каталоги в Apache с помощью файла .htaccess
  3. Как скрыть номер версии Apache и другую конфиденциальную информацию
  4. Защитите Apache от грубой силы или DDoS-атак с помощью Mod_Security и Mod_evasive

Вот и все! Чтобы поделиться своими мыслями по поводу этого руководства, воспользуйтесь формой обратной связи ниже. И не забывайте всегда оставаться на связи с linux-console.net.