Как настроить SSL в апаче?

Вы регистрируете количество активных процессов? Если система не уничтожает пожирателей ресурсов памяти, более вероятно, что Вы видите fork-бомбу (или злонамеренная или программная ошибка).

10
13.05.2016, 18:01
2 ответа

Если Вы используете apache2, затем необходимо сделать следующее:

Шаг 1: Используйте OpenSSL для создания ключей, которые используются для обеспечения сайта. Эти ключи используются при шифровании и дешифровании трафика на безопасный сайт.

$ openssl genrsa -out mydomain.key 1024

Эта команда создаст закрытый ключ на 1 024 бита и помещает его в файл mydomain.key.

Шаг 2: Генерируйте свой собственный сертификат.

$ openssl req -new -key mydomain.key -x509 -out mydomain.crt

Шаг 3: Сохраните закрытый ключ в каталоге /etc/apache2/ssl.key/ и сертификат в каталоге /etc/apache2/ssl.crt/.

Примечание: ssl.key каталог должен быть только читаемым корнем.

Шаг 4: Теперь необходимо отредактировать httpd.conf файл в /etc/apache2.

Теперь этот файл должен включать содержание как это:

NameVirtualHost *:80
NameVirtualHost *:443
Listen 443

<VirtualHost *:80>
ServerAdmin webmaster@mydomain.com
DocumentRoot /srv/www/htdocs/mydomain
ServerName www.mydomain.com
ServerAlias mydomain.com
</VirtualHost>


<VirtualHost *:443>
ServerAdmin webmaster@mydomain.com
DocumentRoot /srv/www/htdocs/mydomain-secure
ServerName mail.mydomain.com
SSLEngine on
SSLCertificateFile /etc/apache2/ssl.crt/mydomain.crt
SSLCertificateKeyFile /etc/apache2/ssl.key/mydomain.key
</VirtualHost>


<Directory /srv/www/htdocs/mydomain-secure>
SSLRequireSSL
</Directory>


<VirtualHost *:80>
ServerAdmin webmaster@mydomain.com
DocumentRoot /srv/www/htdocs/mydomain
ServerName mail.mydomain.com
RedirectMatch permanent (/.*) https://mail.mydomain.com$1
</VirtualHost>
13
27.01.2020, 20:01
  • 1
    Первые три строки не необходимы. 1. NameVirtualHost удерживается от использования и будет удален в будущих версиях Apache. Его в настоящее время уже нет. 2. Listen 443 может вызвать проблемы, если апач уже настроен для слушания на порте 443, который на многих дистрибутивах Linux уже имеет место. Только добавьте, уверены ли Вы, что эта строка еще не настроена где. –  lanoxx 31.08.2017, 11:46

Не изменяться Listen 80 кому: 443 в /etc/httpd/conf/httpd.conf. SSL настроен в /etc/httpd/conf.d/ssl.conf. На RHEL 6 SSL включен и слушающий по умолчанию с сам подписанный сертификат.

Можно добраться до сайта по умолчанию с помощью SSL только путем просмотра к https://localhost (Вы не должны добавлять порт в конец URL).

Если Вы хотите передать все Запросы HTTP HTTPS (который является тем, что я полагаю, что Вы пытаетесь достигнуть), можно или добавить постоянное перенаправление или использовать модуль Apache mod_rewrite.

Самый легкий и самый безопасный путь состоит в том, чтобы настроить постоянное перенаправление. Включите названные виртуальные хосты и добавьте a Redirect директива к VirtualHost в /etc/httpd/conf/httpd.conf.

NameVirtualHost *:80
<VirtualHost *:80>
   ServerName localhost
   Redirect permanent / https://localhost
</VirtualHost>

Используя mod_rewrite, Вы также создаете именованный виртуальный хост. Это не рекомендуемый метод, но будет работать.

NameVirtualHost *:80
<VirtualHost *:80>
   # Enable the Rewrite engine
   RewriteEngine On
   # Make sure the connection is not already HTTPS
   RewriteCond %{HTTPS} !=on
   # This rewrites the URL and forwards to https
   RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</VirtualHost>

Если Вы хотите выключить SSL, прокомментируйте эти строки в /etc/httpd/conf.d/ssl.conf и Apache перезапуска.

LoadModule ssl_module modules/mod_ssl.so
Listen 443
3
27.01.2020, 20:01
  • 1
    На самом деле, если Вы добавляете mod_ssl пакет для RHEL6, он создает/etc/httpd/conf.d/ssl.conf, который загружает модуль и настраивает <VirtualHost _default_:443>, со всеми необходимыми параметрами, каждым с комментариями. mod_ssl пакет автоматически не установлен, если Вы установили httpd пакет. –  jsbillings 06.08.2012, 20:15
  • 2
    я хотел бы добавить всего одну вещь к Вашему переписывать: использовать [R=301,L] вместо просто [R,L], этим путем переписывание использует постоянную опцию HTTP 3xx коды состояния. –  dcestari 14.05.2015, 03:06

Теги

Похожие вопросы