Рассмотрим простой способ установки SSL сертификата на Apache под управлением OC CentOS.
Небольшая подготовка, установим пакет, если таковой еще не стоит:
1 2 3 |
#yum install mod_ssl |
Далее идем вот на этот сайт и получаем бесплатный сертификат Чтобы получить SSL сертификат для вашего домена, вам придется подтвердить, что вы владелец . Я выбрал способ с помощью создания записи в ДНС.
После подтверждения, вы сможете скачать zip файл, где будут три ключа:
1 2 3 4 5 |
certificate.crt ca_bundle.crt private.key |
Эти ключи вам нужно будет перенести на сервер, к примеру, положить в каталог /etc/ssl/srt
В моем примере сайт, на который я устанавливаю сертификат, прописан в конфигурационном файле /etc/httpd/conf.d/httpd-vhosts.conf
Если вы планируете, чтобы ваш сайт работал только по https, то в качестве порта подключения мы указываем порт 443
1 2 3 4 5 6 7 8 9 10 11 12 |
<VirtualHost *:443> ServerName mysite.ru DocumentRoot /var/www/mysite_ru/ SSLEngine on SSLCertificateFile /etc/ssl/crt/certificate.crt SSLCertificateKeyFile /etc/ssl/crt/private.key SSLCertificateChainFile /etc/ssl/crt/ca_bundle.crt ServerAlias www.mysite.ru ErrorLog /var/www/mysite_ru/error.log </VirtualHost> |
Отличие от стандартной записи, при которой сайт работает только по http, это добавления минимум следующих строк:
SSLEngine on
SSLCertificateFile /etc/ssl/crt/certificate.crt
SSLCertificateKeyFile /etc/ssl/crt/private.key
SSLCertificateChainFile /etc/ssl/crt/ca_bundle.crt
Если мы хотим, чтобы доступ к сайту был и по http, то нужно еще добавить раздел для 80 порта
1 2 3 4 5 6 7 8 |
<VirtualHost *:80> ServerName mysite.ru DocumentRoot /var/www/mysite_ru/ ServerAlias www.mysite.ru ErrorLog /var/www/mysite_ru/error.log </VirtualHost> |
После внесения изменение перегружаем apache:
#service httpd restart
Сертификат выдается на 90 дней. Вам будет предложено пройти регистрацию, а она простая, нужно будет только указать свой emal, на который вам, за неделю до окончания срока действия сертификата, придет письмо с напоминанием о продлении/создании нового сертификата.
Дополнение:
Если надо сделать переадресацию (redirect) с http на https, а также, чтобы вообще работал файл .htaccess, то нужно немного подправить httpd.conf сервера apache, который расположен по пути /etc/httpd/conf/httpd.conf
Нужно в секции <Directory “/var/www”> изменить AllowOverride None на AllowOverride All
Здесь мы предполагаем, что наши сайты расположены в корне /var/www
И последнее, создаем в корне нашего сайта файл .htaccess и прописываем в нем пару правил:
1 2 3 4 5 |
RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L] |