Linux настройка apache ssl

Установка SSL-сертификата на Apache

Настройка HTTPS на Apache и установка SSL необходима, чтобы обеспечить защиту данных пользователей на вашем веб-сайте. В инструкции ниже описана установка SSL-сертификата Comodo, GlobalSign и других, предоставляемых REG.RU, и установка SSL, заказанных в других компаниях.

Активный SSL-сертификат

Перед установкой SSL-сертификата от REG.RU перейдите к списку услуг и убедитесь, что услуга SSL-сертификата активна (значок зелёного цвета):

Установка SSL

После выпуска SSL на ваш контактный e-mail придёт письмо с данными для его установки, это:

Приватный ключ обычно генерируется при заказе SSL и сохраняется на ваш локальный ПК.

Перед установкой SSL на Ubuntu/Debian необходимо включить модуль mod_ssl с помощью команды: a2enmod ssl .

  • domain_name.crt — сам сертификат;
  • private.key — приватный ключ;
  • chain.crt — цепочка сертификатов, которая содержит сначала промежуточный сертификат и следом за ним корневой (с новой строки без пробелов и пустых строк).
  • для CentOS: /etc/httpd/conf/httpd.conf;
  • для Debian/Ubuntu: /etc/apache2/apache2.conf;
  • если вы устанавливаете SSL-сертификат на OpenServer, используйте путь к его корневой папке. В конце файла создайте копию блока «VirtualHost». Укажите для блока порт 443 и добавьте внутри него строки:
SSLEngine on SSLCertificateFile /etc/ssl/domain_name.crt SSLCertificateKeyFile /etc/ssl/private.key SSLCertificateChainFile /etc/ssl/chain.crt

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

Готово, вы настроили SSL-сертификат. Теперь настройте переадресацию для вашего сайта.

Настройка HTTPS на Apache

После установки SSL настройте редирект с HTTP на HTTPS. Редирект для Apache настраивается через файл .htaccess.

Чтобы осуществить переадресацию добавьте в конце файла .htaccess следующие строки:

RewriteEngine On RewriteCond % !^443$ RewriteRule .* https://%% [R=301,L]

Подробнее про редирект через .htaccess вы можете узнать в статье: Редирект через .htaccess.

Проверка установленного SSL

Вы можете проверить корректность установки SSL-сертификата по инструкции: Как проверить правильность установки SSL-сертификата?

Если у вас возникли сложности с установкой SSL-сертификата, вы можете написать заявку в службу поддержки, и наши специалисты вам помогут.

Источник

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

Обновлено

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

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

Читайте также:  Jarsigner kali linux установка

Шаг 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). Есть несколько способов это сделать.

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

Открываем файл с настройкой виртуальных доменов (как в шаге 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)

Читайте также:  Virtualbox сетевой мост kali linux

Источник

Настройка SSL сертификата для Apache

С помощью SSL сертификата можно зашифровать вашу информацию на сайте сайта для защиты соединений. Так же, он может давать посетителям сайта информацию о идентификации на виртуального сервера.

Как и где можно получить SSL сертификат?

SSL сертификат можно купить или создать самим. Я именно буду использовать самоподписанный сертификат для своего сайта.

В своей статье «Настройка SSL сертификата для Apache», я расскажу как можно установить и настроить SSL сертификат для Apache. На готовых примерах, я покажу как это сделать. Я использую ОС: Debian 8 и CentOS 6/7.

Установка SSL сертификата для Apache

Для начала нужно установить Apache и модуль для него — mod_ssl. Если не знаете как установить apache, то можно ознакомится с материалом тут:

И так, apache уже установлен, но нужно еще установить и модуль для работы с SSL сертификатами.

Для CentOS/RHEL/Fedora, выполните команду:

Для Debian/Ubuntu, выполните команду:

Данный модуль, уже идет с пакетом Apache, по этому, нужно его включить:

После включения SSL, необходимо перезапустить веб-сервер чтобы изменения вступили в силу, для этого, выполните команду:

Создание нового каталога

Т.к в RedHat’s apache устанавливается в /etc/httpd, то для хранения сертификатов, я создам новую папку:

Т.к в Debian’s apache устанавливается в /etc/apache2, то для хранения сертификатов, я создам новую папку:

После чего, можно приступать к генерации сертификата.

Создание самоподписанного сертификата

Сейчас, я создам самоподписанный сертификат который будет работать 365 дней ( 1 год). Все параметры, я опишу немного ниже.

Для CentOS/Fedora/RedHat, выполните команду:

# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/httpd/ssl/apache.key -out /etc/httpd/ssl/apache.crt

Для Ubuntu/Debian, выполните команду:

# sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/linux-notes.key -out /etc/apache2/ssl/linux-notes.crt

Теперь, рассмотрим что же выполняют некоторые опции:

  • openssl: Это утилита для создания и управления сертификатами, ключами и т.д.
  • req: Это субкоманда, которая создает подпись X.509 (CSR) для управления сертификатом. X.509 является открытым ключом, с помощью которого, можно создать свой самоподписанный сертификат.
  • -x509: Эта опция указывает, что мы хотим сгенерировать файл сертификата с собственной подписью вместо генерации запроса на сертификат.
  • -nodes: С этой опцией я создам ключ который будет зашифрован с помощью парольной фразы. Имея защищенный паролем ключ, я должен буду вводить вводить пароль каждый раз при перезапуске службы. Я нажну «ENETR» и оставлю пустой пароль.
  • -days 365: Это указывает, что сертификат будет действителен в течение одного года.
  • -newkey rsa:2048: Эта опция служит для создания сертификата и нового закрытого ключа. Это необходимо, так как я не создал секретный ключ заранее. RSA: 2048 сгенерирует ключ RSA с 2048 битным шифрованием.
  • -keyout: Этот параметр задаст выходной файла для файла секретного ключа, который создается.
  • -out: Этот параметр задаст выходной файла для сертификата, который я генерирую.
Читайте также:  Linux дистрибутивы слабые компьютеры

Входе генерации сертификата, нужно ввести некоторые данные:

Country Name (2 letter code) [XX]:UA State or Province Name (full name) []:nvs Locality Name (eg, city) [Default City]:Lugansk Organization Name (eg, company) [Default Company Ltd]:linux-notes Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []:linux-notes.org Email Address []:solo.metal@bigmir.net

Чтобы не вводить это, можно задать нужные параметры при вводе команды, например:

# openssl req -nodes -newkey rsa:2048 -nodes -keyout /etc/apache2/ssl/linux-notes.key -out /etc/apache2/ssl/linux-notes.crt -subj "/C=UA/ST=Lugansk/L=Lugansk/O=linux-notes Ltd./OU=IT/CN=linux-notes.org"

Настройка SSL сертификата для Apache

И так, уже все есть, сертификат создан и можно приступать к настройке. Для этого, открываем виртуальный хост (если нет, можно создать новый):

Конфигурационный файл(ы) в RedHat’s можно создать:

# vim /etc/httpd/conf.d/linux-notes.org.conf

Конфигурационный файл(ы) в Debian’s можно создать:

# vim /etc/apache2/conf.d/linux-notes.org.conf

Мой конфиг выглядит следующим образом:

  ServerName linux-notes.local ServerAlias www.linux-notes.local ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog $/error-linux-notes.local.log CustomLog $/access-linux-notes.local.log combined SSLEngine on SSLCertificateFile /etc/ssl/apache.pem SSLCertificateKeyFile /etc/ssl/apache.crt SSLOptions +StdEnvVars SSLOptions +StdEnvVars BrowserMatch "MSIE 5" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 BrowserMatch "MSIE 17" ssl-unclean-shutdown 

Конфиг готов и осталось совсем немногое.

Можно создать перенаправление с 80-порта на 443-й, для этого, нужно прописать перенаправление:

 ServerName linux-notes.org RewriteEngine On RewriteRule ^(.*)$ https://%$1 [redirect=301] ServerName linux-notes.org DocumentRoot /var/www/linux-notes.org SSLEngine on SSLCertificateFile /etc/ssl/apache.pem SSLCertificateKeyFile /etc/ssl/apache.crt ErrorLog $/error-linux-notes.local.log CustomLog $/access-linux-notes.local.log combined 

Настройка вашего брандмауэра

После всех изменений, необходимо так же, пробросить порт (443) для работы веб-сервера (apache), для этого я добавн правило в IPtables:

# iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Перезапуск Apache

Перед перезапуском апача, стоит проверить правильный ли синтаксис, можно сделать это с помощью следующей команды:

Это команда для RPM’s систем, для DEB’s систем найдите сами.

Теперь, когда я настроил SSL в виртуальном хосте, необходимо включить его:

# a2ensite linux-notes.org.conf

и после этого можно перезапускать апач:

Открываем сайт, и смотрим что получилось:

Вот и все, все настроено и готово к использованию. Моя тема «Настройка SSL сертификата для Apache» завершена.

Источник

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