Порядок установки SSL сертификата (Apache)

SSL-сертификаты применяются для обеспечения безопасного соединения и передачи данных в зашифрованном виде.

Сертификаты выдаются сертификационными центрами и представляют собой файл сертификата, выпущенного для определенного доменного имени, и приватного ключа.

 

Также необходимы промежуточные сертификаты в случае если файлы, упомянутые ранее, были сгенерированы не корневым центром сертификации.

Также возможно использование сертификатов, сгенерированных самостоятельно на Linux сервере. Однако, браузер пользователя при доступе к сайту в этом случае будет выдавать предупреждение о недоверенном сертификате.

Как установить ssl сертификат на сервер

 

SSL сертификаты чаще всего устанавливаются на веб- и почтовые сервера. В рамках данного материала будет рассмотрена установка сертификата на веб-сервер Apache для обеспечения возможности работы сайта по защищенному протоколу https

 

 

Как установить ssl сертификат на сервер Apache:

1. Чтобы установить на сервер сертификат необходимо подключиться к нему по протоколу SSH от имени пользователя root;

 

2. Файлы сертификатов могут размещаться в любом каталоге, часто их размещают в  /etc/apache2/ssl.

Переходим в /etc/apache2 и создаем директорию

cd /etc/apache2

mkdir ssl

 

3.Создаем файлы сертификата, приватного ключа и промежуточного сертификата и помещаем в них содержимое аналогичных файлов, полученных от центра сертификации (или сгенерированных на сервере)

 

mcedit /etc/apache2/ssl/example.com.crt

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

 

——BEGIN CERTIFICATE——
MIIFEDCCA/igAwIBAgISA+1wB7/BBdk7NHpvkfWRpapqMA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xNzAxMjkwNjEwMDBaFw0x
NzA0MjkwNjEwMDBaMCExHzAdBgNVBAMTFnJlbW90ZS10ZWNoLXN1cHBvcnQucnUw
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQChoT+eOaGZXNtkoPLe6BNJ
d2gQqeTP1n8n2GRcJE7gKgduglfs1YfvE3CtoMYEm6veKKvVKE8AGox0USUPuM8S
——END CERTIFICATE——

 

SHIFT+INS чтобы вставить содержимое
F2 чтобы сохранить
Выходим нажимая ESC

Аналогичным образом создаем файл приватного ключа

mcedit /etc/apache2/ssl/example.com.key

Пример содержимого файла:
——BEGIN PRIVATE KEY——
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQChoT+eOaGZXNtk
oPLe6BNJd2gQqeTP1n8n2GRcJE7gKgduglfs1YfvE3CtoMYEm6veKKvVKE8AGox0
USUPuM8SRDeo4kJ7tAaQC1Ss8B6Dj57EKTJ+Jw+m+SzJEyfs3inAmrwKhR1KjRUe
SzsEgsralTZSK1uvoxPaKTsqPshs5oK3ZeTwzIR+keHbQUkxNyhKEM4j+dOFrykb
NLkJDABDzknmjodTr6fEgA5D99AAj/aWxaaOch8NxLQS60EasgdGFhIBZ/xACNdM
zIP3mn5WValj5yBOeX61f2qy0jy8RcwHMJbiA3IEw6oVVi+iTO6kgHrwhULCWJ8T
——END PRIVATE KEY——

 

 

Добавляем промежуточный сертификат, подтверждающий корректность цепочки

 

mcedit /etc/apache2/ssl/intermediate.crt

Пример промежуточного сертификата:
——BEGIN CERTIFICATE——
MIIEkjCCA3qgAwIBAgIQCgFBQgAAAVOFc2oLheynCDANBgkqhkiG9w0BAQsFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTE2MDMxNzE2NDA0NloXDTIxMDMxNzE2NDA0Nlow
SjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUxldCdzIEVuY3J5cHQxIzAhBgNVBAMT
GkxldCdzIEVuY3J5cHQgQXV0aG9yaXR5IFgzMIIBIjANBgkqhkiG9w0BAQEFAAOC
——END CERTIFICATE——

 

4. Что того чтобы работа веб-сервера по защищенному соединению необходимо, что был включен модуль apache2 SSL

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

apache2ctl -M | grep ssl

Если вывод не пустой — модуль активирован. Если в выводе ничего нет включаем модуль:

a2enmod ssl

После выполнения команды появляется сообщение «Enabling module ssl».

 

5. Переходим в каталог, в котором размещаются конфигурационные файлы сайтов — cd /etc/apache2/sites-available и находим конфигурационный файл сайта, подключение к которому по https настраиваем — в данном случае — example.com.conf

 

6. Создаем копию конфигурационного файла сайта и вносим в него коррективы

cp example.com.conf ssl-example.com.conf

 

6.1 В строке VirtualHost указываем порт по которому будет осуществляться подключение при работе по https — меняем 80 (значение для http) на 443

 

6.2 В качестве ServerName указываем имя сайта example.com

 

6.3 Приводим файл к следующему виду, указывая в нем полные пути к сертификату, приватному ключу и сертификату промежуточному SSLCertificateFile SSLCertificateKeyFile и SSLCACertificateFile

ServerAdmin info@example.com
ServerSignature On
ServerName example.com
AddDefaultCharset utf-8
CustomLog /var/log/apache2/logs/example.com/access.log combined
LogLevel error
SuexecUserGroup user user
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/example.com.crt
SSLCertificateKeyFile /etc/apache2/ssl/example.com.key
SSLCACertificateFile /etc/apache2/ssl/intermediate.crt
SSLProtocol All -SSLv2 -SSLv3
SSLCipherSuite kEECDH+AES128:kEECDH:kEDH:-3DES:kRSA+AES128:kEDH+3DES:DES-CBC3-SHA:!RC4:!aNULL:!eNULL:!MD5:!EXPORT:!LOW:!SEED:!CAMELLIA:!IDEA:!PSK:!SRP:!SSLv2 SSLCompression off

SSLHonorCipherOrder on

DocumentRoot «/home/admin/example.com/www/»
……

 

7. Активируем сайт:

a2ensite ssl-example.com.conf

Фактически при выполнении команды создается символьная ссылка /etc/apache2/sites-availible/ssl-example.com.conf /etc/apache2/sites-enabled/

 

8. Перезапускаем веб-сервер для того чтобы изменения вступили в силу:

service apache2 restart

или (если сервис работает под runit)

sv t apache2

9. Проверяем статус

service apache2 status

или

sv s apache2

Если никаких ошибок не наблюдается — можно проверять доступность сайта по https. Также следует проверить корректность установки сертификата при помощи одного из онлайн-сервисов, предоставляющих подобную возможность.

 

На этом с вопросом о том, как установить SSL сертификат на сервер все.

Читайте также про установку для Nginx