Устанавливаем SSL-сертификат на веб-сервер Apache под Linux

Зачем нужен SSL-сертификат

Secure Sockets Layer — уровень защищённых сокетов. По сути это означает: шифрование, аутентификацию и проверку целостности данных. Без SSL-сертификата:

Хакеры, конечно, могут получить SSL-сертификат и на схожий домен, но для серьёзного сертификата им потребуется компания, а это уже целая история, время, расходы и куча следов. И не факт, что они ещё получат сертификат на домен, который до степени смешения похож на другой, на сайт, которого нет в поисковиках.

Какие бывают SSL-сертификаты и чем они отличаются

Цена SSL-сертификатов слабо зависит от его типа, поэтому, если у вас организация, то получайте Extended Validation (EV SSL) сертификат. При покупке SSL-сертификата полезно, чтобы он распространялся и на поддомены, если они у вас, конечно, есть.

Ещё у SSL-сертификатов есть такой параметр как гарантия. Это количество денег, которое вам выплатит удостоверяющий центр, если ваш сайт взломают именно по причине дыры в SSL-сертификате. Пока о подобных случаях слышать не приходилось. Сайты взламывают из-за кривых рук и разгильдяйства разработчиков. Перехватить и расшифровать трафик — задача совершенно другого порядка сложности.

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

Итак, вы приобрели сертификат. Теперь его нужно установить к вам на сайт. Здесь мы рассмотрим установку на сайт под управлением веб-сервера Apache.

yum install mod_ssl #устанавливаем модуль SSL веб-сервера Apache
vi /etc/httpd/conf.d/puzzle.itsoft.ru.conf # редактируем конфиг сайта добавляем строки с SSL и Redirect
<VirtualHost *:80>
ServerName puzzle.itsoft.ru
ServerAlias www.puzzle.itsoft.ru
Redirect 301 / https://puzzle.itsoft.ru/
</VirtualHost>

<VirtualHost *:443>
ServerName puzzle.itsoft.ru
ServerAlias www.puzzle.itsoft.ru
DocumentRoot /site/puzzle/public
SSLEngine  on
SSLCertificateFile /etc/ssl/itsoft.ru-wc-dv/itsoft_star.crt
SSLCertificateKeyFile /etc/ssl/itsoft.ru-wc-dv/itsoft_star.key
SSLCertificateChainFile /etc/ssl/itsoft.ru-wc-dv/itsoft_star.crt
<Directory /site/puzzle/public>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog /site/puzzle/logs/error.log
CustomLog /site/puzzle/logs/access.log common
</VirtualHost>

#сохраняем конфиг

apachectl  configtest #тестируем конфиги веб-сервера Apache
systemctl restart httpd         #перезапускаем веб-сервер Apache

В браузере вводим адрес нашего сервера и проверяем, что Apache работает и есть сертификат.

Важно учесть

Весь контент на сайте должен отдаваться по https и загружаться тоже по https. Это касается каких-то внешних библиотек, шрифтов, картинок, где есть внешняя ссылка http://. Веб-мастер Яндекса подскажет вам есть ли у вас такой контент. Если есть, то сайт не получит значок Защищённое соединение. Если хотя бы какая-то часть контента страницы подгружается по http://, то вся страница уже не может считаться безопасной.

В интернет встречаются и другие советы как сделать редирект. Например, с помощью mod_rewrite. Но это всё же не то. Этот модуль предназначен для других целей.

Телеграмм ITSOFT