apache redirect http to https centos

linux-notes.org

Хотел бы рассказать о том как можно перенаправить любой запрос HTTP на веб-сервере на HTTPS. Это не очень сложно и я ничего нового не расскажу кто это знает, но для новичка — будет полезным. В своей теме «Перенаправление HTTP на HTTPS для Apache в Unix/Linux» я расскажу как это можно сделать.

Для примера, я возьму свой сайт http://linux-notes.org и сделаю перенаправление на https://linux-notes.org

Для начала открываем файл с конфигурацией (для разных Linux ОС файл с конфигурациями может лежать в другом месте):

Убедитесь что модуль mod_rewrite.so загружен (имеется строчка):

Если ее нет, то пропишите.

Перенаправление HTTP на HTTPS для Apache в Unix/Linux

Прописываем в свой файл с конфигурацией:

PS: Лучше это сделать в файле htaccess (в домашней директории самого сайта)!

Принудительное перенаправление HTTP на HTTPS для Apache в Unix/Linux

Не забудьте заменить www. linux-notes.org на ваш домен.

Не забудьте заменить linux-notes\.org с вашим доменом. Кроме того, вам нужно заменить www. linux-notes.org с вашим действительным именем домена.

Если вы хотите заставить принудительно использовать SSL на определенную папку, то пропишите:

После чего, необходимо перезапустить службу с apache:

Это для rpm’s ОС, а для deb’s — это выглядит так:

PS: Если прописать в htaccess, то перезапускать web-сервер не нужно.

На этом все, статья «Перенаправление HTTP на HTTPS для Apache в Unix/Linux» завершена.

Источник

Настройка ssl в apache на CentOS

Хочу поделиться небольшой информацией о том, как настроить ssl подключение в apache на сервере с CentOS и перевести сайты с http на https. Делается это не сложно, но есть пара нюансов.

Недавно я уже рассказывал о том как получить бесплатный ssl сертификат для подтверждения доменного имени. Мы его использовали для организации ssl/tls соединений в почтовом сервере. Теперь его же мы будем использовать для того, чтобы перевести наш сайт на работу по ssl протоколу.

О том, как получить бесплатный сертификат от let’s encrypt и настроить apache на работу с ним читайте в моей статье по настройке web сервера apache на centos 8.

Установка mod_ssl в apache

В качестве сервера у нас выступает apache на CentOS, хотя это не принципиально, настройка на других linux дистрибутивах будет идентичной. Рабочим web сервером является apache. Использовать ssl протокол в apache мы будем с помощью мода mod_ssl. Первым делом проверим, установлен ли он:

Если нет, то устанавливаем:

После установки мода, идем в директорию /etc/httpd/conf.d и правим там файл настроек ssl.conf. Прописываем пути к сертификатами в директивах SSLCertificateFile и SSLCertificateKeyFile.

Создание виртуального хоста с поддержкой ssl

Далее необходимо либо создать новый виртуальный хост apache, либо отредактировать существующий в файле /etc/httpd/conf/httpd.conf. Добавляем в конец файла:

После сохранения проверяем конфигурацию apache:

Если появляется предупреждение:

То ищем в /etc/httpd/conf/httpd.conf строчку NameVirtualHost *:80 и добавляем после нее NameVirtualHost *:443

Снова проверяем. Если ошибок нет, перезапускаем апач и заходим на сайт, прописав в адресной строке https, вместо http. Теперь ваш сайт доступен по протоколу https. Но пользователи сайта могут об этом не знать. Было бы разумным сделать переадресацию с открытого протокола на защищенный. Сделаем это.

Читайте также:  откуда взялся апостол павел

Переадресация с http на https

Для того, чтобы сделать автоматическую переадресацию с http на https, необходимо в описании виртуального хоста в httpd.conf добавить порт 80 вместе с 443:

Теперь даже если просто набрать адрес сайта с http откроется его защищенная версия https. Не забудьте проверить, включен ли у вас модуль mod_rewrite в настройках apache. И проверьте фаервол. Для корректной работы сайта по протоколу https необходимо открыть 443 порт на веб сервере.

Онлайн курс по Linux

Помогла статья? Подписывайся на telegram канал автора

Автор Zerox

15 комментариев

Здравствуйте не подскажите можно ли получить сертификат lets encrypt если например будет два сервера с внешними ip и при этом один плавающий будет на два сервера, доменное имя к нему будет прикручено к плавающему ip?

Можно. Сервер же клиентам все равно будет отвечать с какого-то ip. Let’s encrypt во время выпуск сертификата делает проверку обычным запросом на web сервер.

Для чего прописывать дважды SSLCertificateFile и SSLCertificateKeyFile, сначала в ssl.conf а потом в VirtualHost?
попробовал удалить из VirtualHost, рабоает, но не наоборот. А если на сервере несколько доменов?

Зачем дважды? В статье у меня этого нет. Есть глобальные настройки для всех виртуальных хостов, а есть настройки конкретного виртуального хоста. Настраивают обычно каждый виртуальный хост в отдельности, так как сертификаты для них уникальные.

День добрый!
Прекрасно зашли ваши установка CentOS и LAMP, а вот тут ну никак. Вероятно, я чего-то недопонимаю. Хочу мигрировать с Ubuntu на CentOS с имеющимися сайтами и сертификатами.
Можно как-то по-подробнее, с нюансами?

А в чем проблема? Тут фактически надо только указать сертификат в конфиге и все. Нюансов нет.

Да, действительно. Ложная тревога. На второй день нашел пару своих ошибок и одно небольшое недопонимание. Всё ок. Спасибо за Ваши статьи.

А как на Zabbix 4 с Centos 7 сделать https? Можете расписать подробно пожалуйста

Источник

How to Redirect HTTP to HTTPS on Apache

HTTP (Hyper Text Transfer Protocol) is a popular as well as the fundamental protocol for data communication on the World Wide Web (WWW); typically between a web browser and the server which stores web files. Whereas HTTPS is the secure version of HTTP, where the ‘S‘ at the end stands for ‘Secure‘.

Using HTTPS, all data between your browser and the web server are encrypted thus secure. This tutorial will show you how to redirect HTTP to HTTPS on Apache HTTP server in Linux.

Before you can set up an Apache HTTP to HTTPS redirect for your domain, make sure you have SSL certificate installed and mod_rewrite is enabled in Apache. For more information on how to setup SSL on Apache, see following guides.

For this method, make sure mod_rewrite is enabled, otherwise enable it like this on Ubuntu/Debian systems.

For CentOS/RHEL users, ensure that your have the following line in httpd.conf (mod_rewrite support – enabled by default).

Читайте также:  Что такое эффективная процентная ставка по кредиту своими словами

Now you just need to edit or create .htaccess file in your domain root directory and add these lines to redirect http to https.

Redirect HTTP to HTTPS on Apache Virtual Host

Additionally, to force all web traffic to use HTTPS, you can also configure your virtual host file. Normally, there are two important sections of a virtual host configurations if an SSL certificate is enabled; the first contains configurations for the non-secure port 80.

The second is for the secure port 443. To redirect HTTP to HTTPS for all the pages of your website, first open the appropriate virtual host file. Then modify it by adding the configuration below.

Save and close the file, then restart the HTTP sever like this.

While the is the most recommended solution because it is simpler and safer.

You may like to read these useful assortment of Apache HTTP server security hardening articles:

That’s all! To share any thoughts concerning this guide, make use of the feedback form below. And remember to always stay connected to Tecmint.com.

If You Appreciate What We Do Here On TecMint, You Should Consider:

TecMint is the fastest growing and most trusted community site for any kind of Linux Articles, Guides and Books on the web. Millions of people visit TecMint! to search or browse the thousands of published articles available FREELY to all.

If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.

We are thankful for your never ending support.

Источник

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

HTTP-сервер Apache — один из самых популярных веб-серверов в мире. Это кроссплатформенный HTTP-сервер с открытым исходным кодом, который обслуживает большую часть веб-сайтов в Интернете. Apache предоставляет множество мощных функций, которые можно расширить с помощью дополнительных модулей.

Если вы владелец веб-сайта или системный администратор, скорее всего, вы регулярно имеете дело с Apache. Одна из наиболее распространенных задач, которую вы, вероятно, будете выполнять, — это перенаправление HTTP-трафика на защищенную (HTTPS) версию вашего веб-сайта.

В отличие от HTTP, где запросы и ответы отправляются и возвращаются в виде открытого текста, HTTPS использует TLS / SSL для шифрования связи между клиентом и сервером.

Использование HTTPS над HTTP дает множество преимуществ, например:

В этом руководстве рассказывается, как перенаправить HTTP-трафик на HTTPS в Apache.

Перенаправить HTTP на HTTPS с помощью виртуального хоста

Виртуальные хосты Apache определяют настройки одного или нескольких доменов, размещенных на сервере. В директиве виртуального хоста вы можете указать корень документа сайта (каталог, содержащий файлы веб-сайта), создать отдельную политику безопасности для каждого сайта, использовать разные сертификаты SSL, настроить перенаправление и многое другое.

Обычно, когда сертификат SSL установлен в домене, у вас будет две директивы виртуального хоста для этого домена. Первый для HTTP-версии сайта на порту 80, а второй для версии HTTPS на порту 443.

Чтобы перенаправить веб-сайт на HTTPS, используйте директиву Redirect как показано в примере ниже:

Читайте также:  задний отрезок ребра что это

Поясним код. Мы используем две директивы виртуального хоста: одну для HTTP и одну для HTTPS-версии сайта.

Директивы ServerName и ServerAlias определяют доменные имена виртуального хоста. Убедитесь, что вы заменили его на свое доменное имя.

Выделенная строка « Redirect permanent / https://example.com/ внутри виртуального HTTP-хоста» перенаправляет трафик на HTTPS-версию сайта.

Обычно вы также хотите перенаправить HTTPS-версию сайта с www на не-www или наоборот. Вот пример конфигурации:

Код внутри виртуального хоста HTTPS (выделенные строки) проверяет, содержит ли заголовок запроса домен www, и перенаправляет на версию без www.

Каждый раз, когда вы вносите изменения в файлы конфигурации, вам необходимо перезапустить или перезагрузить службу Apache, чтобы изменения вступили в силу:

.htaccess — это файл конфигурации для каждого каталога веб-сервера Apache. Этот файл можно использовать для определения того, как Apache обслуживает файлы из каталога, в котором они размещены, а также для включения / отключения дополнительных функций.

Этот метод требует, чтобы модуль mod_rewrite был загружен на сервер Apache. Этот модуль загружается по умолчанию на большинстве серверов. Если возможно, предпочитайте создание перенаправления на виртуальном хосте, потому что это проще и безопаснее.

Вот что означает код:

Выводы

В Apache предпочтительным способом перенаправления HTTP на HTTPS является настройка перенаправления 301 на виртуальном хосте домена.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

How to automatically redirect HTTP to HTTPS on Apache servers?

Environment Centos with apache

Trying to setup automatic redirection from http to https

I have tried adding the following to my httpd.conf but it didn’t work

12 Answers 12

I have actually followed this example and it worked for me 🙂

Searched for apache redirect http to https and landed here. This is what i did on ubuntu:

1) Enable modules

2) Edit your site config

3) Restart apache2

Using mod_rewrite is not the recommended way instead use virtual host and redirect.

In case, if you are inclined to do using mod_rewrite:

If you are looking for a 301 Permanent Redirect, then redirect flag should be as,

so the RewriteRule will be like,

Actually, your topic is belongs on https://serverfault.com/ but you can still try to check these .htaccess directives:

This code work for me.

Server version: Apache/2.4.29 (Ubuntu)

After long search on the web and in the official documentation of apache, the only solution that worked for me came from /usr/share/doc/apache2/README.Debian.gz

In the file /etc/apache2/sites-available/000-default.conf add the

P.S: If you want to read the manual without extracting:

Please try this one in apache Virtualhosting configuration and then reload apache service

This worked for me:

Since I’m still quite green when it comes to configuring apache, I prefer to avoid using mod_rewrite directly and instead went for something simpler like this:

I like this because it allowed me to use apache variables and that way I didn’t have to specify the actual host name since it’s just an IP address without an associated domain name.

Источник

Образовательный портал