Управление аккаунтом

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

SSL-сертификат шифрует соединение между браузером клиента и веб-сервером. Эта статья — установка купленного сертификата на сайт тремя способами: в панели ISPmanager, из консоли с Apache 2, из консоли с nginx. Разбираем подтверждение прав на домен и работу с четырьмя файлами, которые приходят после подтверждения.

Какие файлы приходят с сертификатом

При заказе SSL-сертификата вы выбираете авторизационный email на своём домене: admin, administrator, hostmaster, postmaster или webmaster. На выбранный email приходит письмо со ссылкой, по которой вы подтверждаете административные права домена; после подтверждения на контактный email аккаунта приходит несколько писем с файлами. Это:

  • приватный ключ — сохраните его как обычный текстовый файл с именем ваш_домен.key;
  • файл сертификата для домена ваш_домен.crt;
  • файл цепочки сертификатов PositiveSSLCA2.crt;
  • файл цепочки сертификатов AddTrustExternalCARoot.crt.

Письмо с приватным ключом не пришло — сначала проверьте каталог «Спам» в почтовом ящике. Если письма и там нет, напишите письмо с контактного email аккаунта на info@majordomo.ru.

Как установить SSL-сертификат в ISPmanager

В панель файлы не загружаются: содержимое вставляете в формы. Всего пять шагов: разрешить SSL пользователю, включить SSL на WWW-домене, создать сертификат из своих файлов, привязать его к домену и проверить сайт по https.

Шаг 1. Разрешите SSL пользователю

Войдите в ISPmanager под учётной записью root. Если вы заказали VPS на тарифе с администрированием нашими специалистами, вход под root пропустите.

В меню «Учетные записи» → «Пользователи» выберите пользователя-владельца сайта, к которому нужно привязать SSL-сертификат, и нажмите кнопку «Изменить».

В открывшемся окне установите галочку «Может использовать SSL», если она ещё не стоит, и сохраните изменения кнопкой Ok.

Дальнейшие шаги выполняйте от имени пользователя-владельца сайта: снова выберите его и нажмите кнопку «Войти» в правом верхнем углу. ISPmanager автоматически понизит ваши привилегии до уровня этого пользователя.

Шаг 2. Включите SSL в настройках WWW-домена

Перейдите в раздел «WWW» → «WWW-домены». В списке отображаются все домены, добавленные в конфигурационные файлы веб-сервера; в колонке «Параметры» иконками показано наличие или отсутствие модулей веб-сервера, которые участвуют в обработке запросов к сайту. Выберите домен и нажмите кнопку «Изменить» сверху.

В открывшейся вкладке установите галочки «Защищённое соединение (SSL)» и «Перенаправлять HTTP-запросы в HTTPS», сохраните изменения кнопкой Ok.

Желательно, чтобы этот домен был единственным доменом с SSL на этом IP-адресе.

Шаг 3. Создайте сертификат из своих файлов

Перейдите в раздел «WWW» → «SSL сертификаты». Здесь показаны все сертификаты, имеющиеся на сервере; свой добавьте кнопкой «Создать» сверху.

Для вашего домена в списке уже есть самоподписанный сертификат: ISPmanager сгенерировал его автоматически в момент, когда на прошлом шаге вы поставили галочку SSL в настройках WWW-домена. Использовать его не нужно.

На первом шаге мастера выберите тип сертификата «существующий».

На втором шаге введите имя сертификата, сам сертификат, приватный ключ и подтверждающую цепочку. Откройте в блокноте все полученные файлы и скопируйте их содержимое в форму:

  • в поле «SSL-сертификат» — содержимое ваш_домен.crt;
  • в поле «Ключ SSL-сертификата» — содержимое ваш_домен.key;
  • в поле «Цепочка SSL-сертификатов» — сначала содержимое PositiveSSLCA2.crt, затем содержимое AddTrustExternalCARoot.crt, именно в этом порядке.

Нажмите кнопку «Завершить».

Шаг 4. Привяжите сертификат к домену

Вернитесь во вкладку «WWW» → «WWW-домены» и нажмите кнопку «Изменить» сверху.

В поле «SSL-сертификат» выберите сертификат, добавленный на предыдущем шаге, и подтвердите изменения кнопкой Ok.

Шаг 5. Проверьте сайт по https

Откройте сайт в браузере по адресу вида https://ваш_домен.ru/. Аббревиатура https означает работу по шифрованному протоколу HTTP. Если всё настроено правильно, браузер отобразит сайт без предупреждений и сообщений о потенциальных угрозах, а в адресной строке будет обозначено, что передаваемые данные шифруются и сертификат подтверждён.

Когда схема может нарушиться

Схема может нарушиться при изменениях в ПО веб-сервера: при его переконфигурировании, смене IP-адреса домена, установке nginx перед Apache, например. Тогда, возможно, придётся вручную внести коррективы в конфигурационные файлы веб-сервера. С вопросами по добавлению сертификата напишите на support@majordomo.ru с контактного e-mail вашего сервера.

Установка сертификата из консоли: Apache 2

На сервере установлен и используется проксирующий веб-сервер nginx — сертификаты организуйте с его помощью, инструкция по nginx ниже отдельным разделом. Для Apache 2 выполните шесть шагов в консоли.

1. Поместите все четыре файла (приватный ключ ваш_домен.key и сертификаты ваш_домен.crt, PositiveSSLCA2.crt, AddTrustExternalCARoot.crt) в директорию /var/www/httpd-cert/.

2. Установите владельца и группу всех файлов в root:

chown root:root /var/www/httpd-cert/ваш_домен.key /var/www/httpd-cert/ваш_домен.crt /var/www/httpd-cert/PositiveSSLCA2.crt /var/www/httpd-cert/AddTrustExternalCARoot.crt

3. Установите права на файл ключа «только для владельца, только для чтения»:

chmod 400 /var/www/httpd-cert/ваш_домен.key

4. Создайте файл цепочки сертификатов и проверьте подлинность цепочки:

cat /var/www/httpd-cert/PositiveSSLCA2.crt /var/www/httpd-cert/AddTrustExternalCARoot.crt > /var/www/httpd-cert/ваш_домен.crt-bundle
openssl verify /var/www/httpd-cert/ваш_домен.crt-bundle

Вывод при успехе:

/var/www/httpd-cert/ваш_домен.bundle: OK

Посмотреть информацию об сертификате можно, например, так:

openssl x509 -text -in ваш_домен.crt

5. В конфигурационном файле Apache 2 (наиболее вероятно — /etc/httpd/conf/httpd.conf) создайте новый VirtualHost на 443 порту. Ниже — только директивы, отвечающие за работу с сертификатом, остальные скопируйте по аналогии из имеющегося VirtualHost на 80-м порту:

SSLEngine on
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
SSLCertificateFile /var/www/httpd-cert/ваш_домен.crt
SSLCertificateKeyFile /var/www/httpd-cert/ваш_домен.key
SSLCACertificateFile /var/www/httpd-cert/ваш_домен.crt-bundle
ServerName ваш_домен
...

Это должен быть первый, и желательно единственный, VirtualHost на этом IP-адресе на 443 порту.

6. Проверьте корректность синтаксиса конфигурационного файла:

/etc/init.d/httpd configtest

Если вывод — Syntax OK, перезапустите Apache и проверьте работу сайта с https://. Если всё сделано правильно, в адресной строке будет обозначено, что передаваемые данные шифруются и сертификат подтверждён.

Установка сертификата из консоли: nginx

Порядок тот же, отличие: цепочку сертификатов дописывают в файл ваш_домен.crt, а в конфигурацию вносят блок server с ssl-директивами nginx.

1. Поместите все четыре файла (приватный ключ ваш_домен.key и сертификаты ваш_домен.crt, PositiveSSLCA2.crt, AddTrustExternalCARoot.crt) в директорию /var/www/httpd-cert/.

2. Установите владельца и группу всех файлов в root:

chown root:root /var/www/httpd-cert/ваш_домен.key /var/www/httpd-cert/ваш_домен.crt /var/www/httpd-cert/PositiveSSLCA2.crt /var/www/httpd-cert/AddTrustExternalCARoot.crt

3. Установите права на файл ключа «только для владельца, только для чтения»:

chmod 400 /var/www/httpd-cert/ваш_домен.key

4. Допишите файлы цепочки в файл сертификата и проверьте подлинность цепочки:

cat /var/www/httpd-cert/AddTrustExternalCARoot.crt >> /var/www/httpd-cert/ваш_домен.crt
cat /var/www/httpd-cert/PositiveSSLCA2.crt >> /var/www/httpd-cert/ваш_домен.crt
openssl verify /var/www/httpd-cert/ваш_домен.crt

Вывод при успехе:

/var/www/httpd-cert/ваш_домен.bundle: OK

Посмотреть информацию об сертификате можно, например, так:

openssl x509 -text -in ваш_домен.crt

5. Внесите в конфигурационный файл nginx, в модуль server, следующие директивы:

server {
    listen 443;
    ssl on;
    ssl_certificate /var/www/httpd-cert/ваш_домен.crt;
    ssl_certificate_key /var/www/httpd-cert/ваш_домен.key;
    server_name your.domain.com;
    ...
}

Это должен быть первый, и желательно единственный, VirtualHost на этом IP-адресе на 443 порту.

6. Перезапустите nginx:

/etc/init.d/nginx restart

Затем проверьте работу сайта с https://. Если всё сделано правильно, в адресной строке будет обозначено, что передаваемые данные шифруются и сертификат подтверждён.