Если вы используете apache2, то вы должны сделать следующее:
Шаг 1: Используйте OpenSSL для создания ключей, которые используются для защиты вашего сайта. Эти ключи используются при шифровании и дешифровании трафика на ваш защищенный сайт.
$ openssl genrsa -out mydomain.key 1024
Эта команда создаст 1024-битный закрытый ключ и поместит его в файл mydomain.key.
Первые три строки не обязательны. 1. NameVirtualHostустарела и будет удалена в будущих версиях Apache. В настоящее время его уже нет. 2. Listen 443может вызвать проблемы, если apache уже настроен на прослушивание через порт 443, что во многих дистрибутивах linux уже имеет место. Добавляйте только если вы уверены, что эта строка не настроена где-либо еще.
Lanoxx
3
Не изменять , 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.
Самый простой и безопасный способ - установить постоянное перенаправление. Включите именованные виртуальные хосты и добавьте Redirectдирективу в VirtualHost в /etc/httpd/conf/httpd.conf.
Используя 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.
Фактически, если вы добавляете пакет mod_ssl для RHEL6, он создает /etc/httpd/conf.d/ssl.conf, который загружает модуль и устанавливает <VirtualHost _default_:443>со всеми необходимыми параметрами, каждый с комментариями. mod_sslПакет не устанавливается автоматически , если вы установили httpdпакет.
Jsbillings
1
Я хотел бы добавить только одну вещь к вашей перезаписи: используйте [R=301,L]вместо просто [R,L]так, переписывание использует постоянную опцию кодов состояния HTTP 3xx .
NameVirtualHost
устарела и будет удалена в будущих версиях Apache. В настоящее время его уже нет. 2.Listen 443
может вызвать проблемы, если apache уже настроен на прослушивание через порт 443, что во многих дистрибутивах linux уже имеет место. Добавляйте только если вы уверены, что эта строка не настроена где-либо еще.Не изменять ,
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
.Самый простой и безопасный способ - установить постоянное перенаправление. Включите именованные виртуальные хосты и добавьте
Redirect
директиву в VirtualHost в/etc/httpd/conf/httpd.conf
.Используя
mod_rewrite
, вы также создаете именованный виртуальный хост. Это не рекомендуемый метод, но будет работать.Если вы хотите отключить SSL, закомментируйте эти строки
/etc/httpd/conf.d/ssl.conf
и перезапустите Apache.источник
<VirtualHost _default_:443>
со всеми необходимыми параметрами, каждый с комментариями.mod_ssl
Пакет не устанавливается автоматически , если вы установилиhttpd
пакет.[R=301,L]
вместо просто[R,L]
так, переписывание использует постоянную опцию кодов состояния HTTP 3xx .