Welcome to linuxshelltips.i

Настройка Apache + SSL для работы сайта по HTTPS

Обновлено

Обновлено: 17.02.2022 Опубликовано: 31.01.2017

Используемые термины: Apache, CentOS, Ubuntu, FreeBSD. Инструкция написана для операционных систем на базе UNIX.

Шаг 1. Создание сертификата

Для боевого сервера, сертификат должен быть получен от доверенного центра сертификации — либо локального для компании, либо коммерческого. Или получен бесплатно от Let’s Ecnrypt. Для тестовой среды можно сгенерировать самоподписанный сертификат. Для этого сперва переходим в рабочую папку. а) на Red Hat / CentOS:

openssl req -new -x509 -days 1461 -nodes -out cert.pem -keyout cert.key -subj «/C=RU/ST=SPb/L=SPb/O=Global Security/OU=IT Department/CN=test.dmosk.local/CN=test»

* в данном примере созданы открытый и закрытый ключи на 4 года (1461 день); значения параметра subj могут быть любыми в рамках тестирования.

Шаг 2. Установка модуля SSL для Apache

Шаг 3. Настройка Apache


ServerName site.ru
DocumentRoot /var/www/apache/data
SSLEngine on
SSLCertificateFile ssl/cert.pem
SSLCertificateKeyFile ssl/cert.key
#SSLCertificateChainFile ssl/cert.ca-bundle

  • ServerName — домен сайта;
  • DocumentRoot — расположение файлов сайта в системе;
  • SSLCertificateFile и SSLCertificateKeyFile — пути до файлов ключей, которые были сгенерированы на шаге 1;
  • SSLCertificateChainFile — при необходимости, путь до цепочки сертификатов (если используем не самоподписанный сертификат).

Проверяем корректность настроек в Apache:

Перечитываем конфигурацию apache:

Шаг 4. Проверка работоспособности

Открываем браузер и переходим на наш сайт, добавив https://. При использовании самоподписного сертификата (как в нашем случае), обозреватель выдаст предупреждение, что передача данных не безопасна. Подтверждаем наше намерение открыть сайт. Если все работает, переходим к шагу 5.

Если сайт не заработал, пробуем найти причину по log-файлу. Как правило, он находится в каталоге /var/log/apache или /var/log/httpd.

Шаг 5. Настройка редиректа

Чтобы все запросы по http автоматически перенаправлялись на https, необходимо настроить перенаправление (redirect). Есть несколько способов это сделать.

Читайте также:  Intellij idea ярлык linux

В конфигурационном файле

Открываем файл с настройкой виртуальных доменов (как в шаге 3) и дописываем следующее:

* в конкретном примере, мы перенаправили все запросы для сайта site.ru.
** обратите особое внимание, что если у Вас уже есть VirtualHost *:80 для настраиваемого сайта, необходимо его закомментировать или отредактировать.

В файле .htaccess

Установка модуля rewrite

Чтобы перенаправление работало в Apache, необходимо установить модуль rewrite.

а) в CentOS открываем конфигурационный файл и проверяем наличие строки:

LoadModule rewrite_module modules/mod_rewrite.so

* если ее нет, добавляем; если она закомментирована, снимаем комментарий.

systemctl restart apache2

Apache + NGINX

При использовании веб-сервера на базе и Apache и NGINX, как правило, наружу смотрит последний. В таком случае, именно он будет отвечать на http-запросы, и в таком случае нужно настраивать SSL на NGINX.

Дмитрий Моск

Как настроить Apache для работы по HTTPS (SSL)

Источник

How to Host a Website Using Apache with SSL in Rocky Linux

The crusade on how awesome, ideal, and convenient the Apache web server is can never get old. It continues to be a lifesaver for most individuals working on web application projects.

Its popularity as a web server application is due to its open-source attribute. Moreover, the module-rich nature of Apache makes it flexibly configurable to its users. Also, when you decide to expand the footprints of your web application projects, Apache makes it possible to accommodate such growing projects.

Rocky Linux, on the other hand, is a community-based enterprise Linux operating system distribution. Since it is somewhat a fork of RHEL’s (Red Hat Enterprise Linux) source code, it is also attributed as a complete binary-compatible and downstream release of its maker (RHEL).

In short, the Rocky Linux project has two critical objectives in mind and the release of an enterprise Linux operating system that is: production-grade and community-supported.

Install Apache in AlmaLinux

To get Apache up and running on your Rocky Linux, consider the following installation steps. Make sure you are a root user or have Sudoer privileges on the system you are using.

Always ensure your Rocky Linux system is up-to-date for its performance to remain top-notch.

Depending on how often you use it, the system update might or might not take a while to complete.

Читайте также:  Linux rdp передача файлов

Next, install Apache and its associated dependencies from the AppStream and BaseOS repo.

$ sudo dnf install httpd httpd-tools

Install Apache in Rocky Linux

Due to the light nature of the Apache package, the installation should take less than a minute to complete.

In Rocky Linux, Apache operates via the httpd service hence the reason why we reference httpd during its installation.

By default, once the Apache installation successfully completed, the httpd service should be up and running. To be certain, we need to start it again.

$ sudo systemctl start httpd

The next step is to ensure that Apache is continuously running even after restarting the system. We will achieve this objective by enabling Apache’s httpd service.

$ sudo systemctl enable httpd

The next step is to check the status of Apache to ensure that it is up and running.

$ sudo systemctl status httpd

Check Apache Status in Rocky Linux

We have verified that Apache is up and running on our Rocky Linux system. Other useful Apache commands to consider include the following:

$ sudo systemctl stop httpd $ sudo systemctl restart httpd $ sudo systemctl reload httpd

Enable Apache on Firewall in Rocky Linux

This step gives the outside world access to Apache through HTTP (port 80) and HTTPS (port 443) protocols.

It is only through this step that you will be able to access your Apache-powered web applications from other machines/computers with varying operating system interfaces.

$ sudo firewall-cmd --zone=public --add-port=80/tcp $ sudo firewall-cmd --zone=public--add-port=443/tcp

Now you can use any other client machine to access your Rocky Linux server through its IP address on a web browser. You should be able to land on Apache’s default page. The page tells you that Apache is ready to serve your web apps.

Check Apache Page in Rocky Linux

Apaches stores your website in /var/www/html/. It is from this location that you can configure how your web application should be represented from a web browser’s viewpoint.

Hosting a Website with Apache in Rocky Linux

The default Apache configuration is suitable to run a single website, but if you want to run multiple website domains, you should use the Apache Virtual Hosts directive feature.

For example, to run another website domain called ‘linuxshelltips.in‘, you need to create a separate virtual host directory and a log directory to hold the log files with the right permissions.

$ sudo mkdir -p /var/www/linuxshelltips.in/html $ sudo mkdir -p /var/www/linuxshelltips.in/log $ sudo chown -R $USER:$USER /var/www/linuxshelltips.in/html $ sudo chmod -R 755 /var/www

Next, create a sample index.html file to test the site.

$ sudo vi /var/www/linuxshelltips.in/html/index.html

Populate it with the following HTML code.

     

LinuxShellTips Introduces linuxshelltips.in

You have successfully accessed linuxshelltips.in home page!

Creating Apache Virtual Host in Rocky Linux

Now create directories called sites-available and sites-enabled for holding the virtual host files.

$ sudo mkdir /etc/httpd/sites-available $ sudo mkdir /etc/httpd/sites-enabled

Next, mention the sites-enabled directory path in the Apache configuration file that needs access to the virtual host files.

$ sudo vi /etc/httpd/conf/httpd.conf

In the end, add the following line and close the file.

IncludeOptional sites-enabled/*.conf

Finally, create a new virtual host file for our domain linuxshelltips.in.

$ sudo vi /etc/httpd/sites-available/linuxshelltips.in

Next, add the following virtual host configuration with the domain name you are using.

 ServerAdmin www.linuxshelltips.in ServerAlias linuxshelltips.in DocumentRoot /var/www/linuxshelltips.in/html ErrorLog /var/www/linuxshelltips.in/log/error.log CustomLog /var/www/linuxshelltips.in/log/access.log combined 

Save the file and close the terminal editor.

Читайте также:  Linux logging to syslog

To active our virtual host file, you need to create a symbolic link between the sites-available and the sites-enabled directories.

$ sudo ln -s /etc/httpd/sites-available/linuxshelltips.in /etc/httpd/sites-enabled/linuxshelltips.in.conf

Finally, restart the Apache and make sure it is running.

$ sudo systemctl restart httpd $ sudo systemctl status httpd

Now you should be able to see the hosted index.html page through your domain name.

Check Domain Website

Secure Apache with HTTPS in Rocky Linux

To secure Apache with HTTPS, you need to install and use Free Let’s Encrypt SSL certificate by installing Certbot and mod_ssl packages from the EPEL repo.

$ sudo dnf install epel-release $ sudo dnf install certbot python3-certbot-apache mod_ssl

Once Certbot is installed, you can obtain a free SSL certificate for our domain.

$ sudo certbot --apache -d linuxshelltips.in

The above command downloads SSL certificates under a subdirectory named after your domain in the /etc/letsencrypt/live directory.

Once you obtain a certificate for your domain, you can verify the SSL certificate at the following URL.

https://www.ssllabs.com/ssltest/analyze.html?d=linuxshelltips.in 

Apache is a dynamic and most popular web server which when fused with a server OS like Rocky Linux creates a very performant and efficient environment.

Источник

Оцените статью
Adblock
detector