Гид по технологиям

Создание CSR и установка доверенного SSL-сертификата

6 min read SSL и TLS Обновлено 28 Nov 2025
Создание CSR и установка доверенного SSL-сертификата
Создание CSR и установка доверенного SSL-сертификата

Коротко: создайте CSR из вашего приватного ключа, отправьте его центру сертификации (CA), затем установите выданный сертификат на сервер Apache. Обязательно укажите правильный Common Name (или используйте SAN) и при необходимости установите цепочку промежуточных сертификатов. Дополнительно — чек-листы, откат и рекомендации по безопасности внизу.

1. Что такое CSR и зачем он нужен

CSR (Certificate Signing Request) — это запрос на подпись сертификата, который содержит публичный ключ и сведения о владельце (CN, организация, страна и т.д.). CA использует CSR, чтобы выпустить подписанный (доверенный) сертификат, который браузеры и клиенты признают надёжным.

Короткое определение: CSR — текстовый блок в PEM-формате, включающий публичный ключ и данные субъекта (DN).

Важно: Common Name (CN) должен соответствовать домену вашего SSL-виртуального хоста. Современная практика — использовать SAN (Subject Alternative Names) для поддержки нескольких имён.

2. Создание директории для CSR

В примере CSR будет храниться в каталоге /etc/ssl/csr, поэтому сначала создайте этот каталог:

mkdir /etc/ssl/csr

Права доступа: каталог должен быть доступен для пользователя, под которым вы работаете (обычно root), а приватные ключи должны иметь ограниченный доступ (600).

3. Генерация CSR из приватного ключа

Создайте CSR из существующего приватного ключа /etc/ssl/private/www.hostmauritius.com.key:

openssl req -new -key /etc/ssl/private/www.hostmauritius.com.key -out /etc/ssl/csr/www.hostmauritius.com.csr

Во время выполнения вас попросят ввести набор полей, которые попадут в запрос. Заполните их аккуратно — эти данные будут видны в деталях сертификата в браузере.

Пример интерактивного ввода:

root@server1:~# openssl req -new -key /etc/ssl/private/www.hostmauritius.com.key -out /etc/ssl/csr/www.hostmauritius.com.csr  
You are about to be asked to enter information that will be incorporated  
into your certificate request.  
What you are about to enter is what is called a Distinguished Name or a DN.  
There are quite a few fields but you can leave some blank  
For some fields there will be a default value,  
If you enter '.', the field will be left blank.  
-----  
Country Name (2 letter code) [AU]: <-- DE  
State or Province Name (full name) [Some-State]: <-- Lower Saxony  
Locality Name (eg, city) []: <-- Lueneburg  
Organization Name (eg, company) [Internet Widgits Pty Ltd]: <-- Example Ltd  
Organizational Unit Name (eg, section) []: <-- IT  
Common Name (eg, YOUR name) []: <-- www.hostmauritius.com  
Email Address []: <-- [email protected]

Please enter the following 'extra' attributes  
to be sent with your certificate request  
A challenge password []: <-- ENTER  
An optional company name []: <-- ENTER  
root@server1:~#

Совет: самый важный параметр — Common Name (CN). Для поддоменов указывайте точное имя (например, www.hostmauritius.com). Для множества имён используйте SAN.

После успешного выполнения у вас появится файл CSR:

cat /etc/ssl/csr/www.hostmauritius.com.csr

| -----BEGIN CERTIFICATE REQUEST----- MIIB9jCCAV8CAQAwgbUxCzAJBgNVBAYTAkRFMRUwEwYDVQQIEwxMb3dlciBTYXhv bnkxEjAQBgNVBAcTCUx1ZW5lYnVyZzEtMCsGA1UEChMkSW50ZXJuZXRkaWVuc3Rs ZWlzdHVuZ2VuIEZhbGtvIFRpbW1lMQswCQYDVQQLEwJJVDEeMBwGA1UEAxMVd3d3 Lmhvc3RtYXVyaXRpdXMuY29tMR8wHQYJKoZIhvcNAQkBFhBmdEBmYWxrb3RpbW1l LmRlMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1A0hAy/N/hw637BCBRqhf ngcxrulgFQJ5ftlWv2wBuouRILQtUZAeJCNMn6d0JS+sXxP60AFEBzLsdkV/OqeF vD/vZlvUM39Qg/98yWwkvFIvz4qtJz/N0IO/KrER2+mUSfgAtFuqZWVwKLrwcVcp /bsGwkp5TqJuQs9NbuQMEQIDAQABoAAwDQYJKoZIhvcNAQEFBQADgYEADzJWSOya kJ5ccQ2TlB3SxUBXtCAZ0aomlqdjkvBu2L1yAAOT4Xv/eKoYlSHjF1vyjtN36ERf cklyFmtS64xxerGSqdW+wxjLyicK5sTplsea2F6yROaj7zxQ+By033HO/QEozU80 Ox/Kx1hc+K31wsor35pz8qxVFRegn2cgCYc= -----END CERTIFICATE REQUEST----- |

4. SAN (Subject Alternative Names) — как добавить альтернативные имена

Если сертификат должен покрывать несколько имён (example.com, www.example.com, api.example.com), используйте SAN. Простой способ — создать openssl конфигурационный файл с секцией [req_ext] и затем вызвать openssl с указанием этой секции:

Пример файла openssl.cnf (фрагмент):

[ req ]
distinguished_name = req_distinguished_name
req_extensions = req_ext

[ req_distinguished_name ]
# поля DN

[ req_ext ]
subjectAltName = @alt_names

[ alt_names ]
DNS.1 = example.com
DNS.2 = www.example.com
DNS.3 = api.example.com

Команда для генерации CSR с использованием конфигурации:

openssl req -new -key /etc/ssl/private/www.hostmauritius.com.key -out /etc/ssl/csr/www.hostmauritius.com.csr -config ./openssl.cnf

Проверьте CSR на наличие SAN:

openssl req -in /etc/ssl/csr/www.hostmauritius.com.csr -noout -text | grep -A1 "Subject Alternative Name"

5. Отправка CSR в центр сертификации (CA)

Выберите CA и отправьте CSR через их веб-интерфейс или API. Платные CA (VeriSign, Thawte, Comodo/ Sectigo и т.д.) дают сертификаты, доверенные всеми крупными браузерами. Бесплатные проекты (например, CAcert.org в примере) могут выдавать сертификаты, которые доверены лишь ограниченным числом клиентов.

Пример работы с CAcert.org (иллюстрация процесса):

  • Зарегистрируйте аккаунт на CAcert.org и подтвердите владение доменом через email/WHOIS.
  • Перейдите в раздел Server Certificates → New и вставьте ваш CSR.
  • Подтвердите отправку и дождитесь выдачи сертификата.

Список подтверждённых доменов в интерфейсе CAcert

Форма создания нового серверного сертификата на CAcert

Поле для вставки CSR на странице CA

Подтверждение отправки CSR на CAcert

Выданный сертификат в интерфейсе CA

6. Установка выданного сертификата в Apache

Когда CA вернёт сертификат (PEM-кодированный), сохраните его на сервере, обычно в /etc/ssl/certs/. Перед заменой сделайте резервную копию текущего сертификата:

cp /etc/ssl/certs/www.hostmauritius.com.pem /etc/ssl/certs/www.hostmauritius.com.pem_bak

Очистите файл и вставьте новый сертификат:

> /etc/ssl/certs/www.hostmauritius.com.pem
vi /etc/ssl/certs/www.hostmauritius.com.pem

Скопируйте сертификат из веб-интерфейса CA и вставьте его в этот файл. Пример содержимого сертификата (фрагмент):

| -----BEGIN CERTIFICATE----- MIIEYzCCAkugAwIBAgIDCBESMA0GCSqGSIb3DQEBBQUAMHkxEDAOBgNVBAoTB1Jv b3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEiMCAGA1UEAxMZ Q0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYSc3VwcG9y dEBjYWNlcnQub3JnMB4XDTEwMDExNzE3MDExMloXDTEwMDcxNjE3MDExMlowIDEe MBwGA1UEAxMVd3d3Lmhvc3RtYXVyaXRpdXMuY29tMIGfMA0GCSqGSIb3DQEBAQUA A4GNADCBiQKBgQC1A0hAy/N/hw637BCBRqhfngcxrulgFQJ5ftlWv2wBuouRILQt UZAeJCNMn6d0JS+sXxP60AFEBzLsdkV/OqeFvD/vZlvUM39Qg/98yWwkvFIvz4qt Jz/N0IO/KrER2+mUSfgAtFuqZWVwKLrwcVcp/bsGwkp5TqJuQs9NbuQMEQIDAQAB o4HQMIHNMAwGA1UdEwEB/wQCMAAwNAYDVR0lBC0wKwYIKwYBBQUHAwIGCCsGAQUF BwMBBglghkgBhvhCBAEGCisGAQQBgjcKAwMwCwYDVR0PBAQDAgWgMDMGCCsGAQUF BwEBBCcwJTAjBggrBgEFBQcwAYYXaHR0cDovL29jc3AuY2FjZXJ0Lm9yZy8wRQYD VR0RBD4wPIIVd3d3Lmhvc3RtYXVyaXRpdXMuY29toCMGCCsGAQUFBwgFoBcMFXd3 dy5ob3N0bWF1cml0aXVzLmNvbTANBgkqhkiG9w0BAQUFAAOCAgEAo6k29BksR4XO PsrpUiE3FrZgsvOzlwVrp5NKeVAueLYYfapgZ9PU6fWVgTR77eBCX4Wt8g0AIZ9B OcUdE/CPtpdPranFbZK+SuqzcgwxO01MVFVUN9WQC5lfixI2qptlmByZygOwmeSa gSGBlKgHNMhmTxtO0FDO3mQdGRymb4/1k2SdQkjk3XBd6Ciy+Jn+S6+3QFaidg88 eLh0vaiUQ2YV/ecbe/zs6JBI0EklR1GRADdMJfMDEm/Ocfs6YWuqo6Tpjc6ycfYe ewnv0PWSsF5urxy8JnSrOKecr1hFVqE9eZCmC/ZpIS9U0z9couyJ0W3FTBXMHil9 roEKDnWmvZ2vywq4JgLvzTHJWjURZe59meV1Fb7R9DmeQiTJ/a0v/6wTymhDxDRc Wm09IwysUbMt3COJ5h+oQEq30Jot6f3bS/Eg5WLOl9zjDTZdCJAbDlSYtwib/wg/ n0ogdykVjZVwKqo0+RpzaoGZRbWoV67QdTCSz3wt+eliyKtV76gENlvnauqfZKDU +erR7byIo+RFZgZKbgYgz0z0X7HWG2XmlqHX+vCYO21H3ap9dWhjnki9BvpA9X32 VMMFVY/XbA5oTQDaVRXyriZo3Mxf+QRsvwJkngD2W4qyRj+4F0xh9y7iz36yebXT +qVoLI4cmcAOBIg7a4KmF9S0NIAclW8= -----END CERTIFICATE----- |

После сохранения перезапустите Apache:

/etc/init.d/apache2 restart

Или, в системах с systemd:

systemctl restart apache2

Если CA не просит установить отдельный файл цепочки (intermediate), вы готовы — сайт должен открываться по HTTPS без предупреждений.

Управление сертификатами на CAcert

7. Файлы цепочки сертификатов и промежуточные сертификаты

Некоторые CA требуют, чтобы вы установили промежуточный сертификат (или цепочку) в конфигурацию Apache. Это важно: если браузер не может найти цепочку от вашего сертификата до доверенного корня, он покажет предупреждение.

Обычно процесс такой:

  1. Скачайте файл цепочки/промежуточных сертификатов от CA (например, CAcert_chain.pem) в каталог /etc/ssl/certs/.
  2. Откройте конфигурацию SSL виртуального хоста:
vi /etc/apache2/sites-available/www.hostmauritius.com-ssl
  1. Добавьте или раскомментируйте директиву SSLCertificateChainFile:

| [...] SSLCertificateFile /etc/ssl/certs/www.hostmauritius.com.pem SSLCertificateKeyFile /etc/ssl/private/www.hostmauritius.com.key # Server Certificate Chain: # Point SSLCertificateChainFile at a file containing the # concatenation of PEM encoded CA certificates which form the # certificate chain for the server certificate. Alternatively # the referenced file can be the same as SSLCertificateFile # when the CA certificates are directly appended to the server # certificate for convinience. SSLCertificateChainFile /etc/ssl/certs/CAcert_chain.pem [...] |

  1. Перезапустите Apache:
/etc/init.d/apache2 restart

Важно о совместимости: в более новых версиях Apache (2.4.8 и выше) предпочтительнее просто конкатенировать ваш сертификат и промежуточные сертификаты в один файл и указать его в SSLCertificateFile. Директива SSLCertificateChainFile может быть устаревшей в некоторых сборках.

Пример объединённого файла (сначала серверный сертификат, затем промежуточный, затем корневой, если требуется):

cat server.crt intermediate.crt > /etc/ssl/certs/www.hostmauritius.com.pem

8. Критерии приёмки

  • HTTPS ресурс открывается по нужному домену без предупреждений в целевых браузерах.
  • Сертификат соответствует доменному имени (CN или SAN).
  • Приватный ключ и сертификат корректно связаны (совпадение modulus/public key).
  • Промежуточные сертификаты установлены корректно, если это требовалось.
  • Права доступа на приватный ключ — не более 600 и владелец root (или сервисный пользователь).

Проверки командой:

openssl x509 -in /etc/ssl/certs/www.hostmauritius.com.pem -noout -text
openssl x509 -in /etc/ssl/certs/www.hostmauritius.com.pem -noout -modulus | openssl md5
openssl rsa -in /etc/ssl/private/www.hostmauritius.com.key -noout -modulus | openssl md5

MD5-хэши modulus должны совпадать (или используйте sha256 вместо md5 для современных требований).

9. Чек-лист администратора при установке сертификата

  • Создан действующий резерв приватного ключа и сертификата.
  • Права доступа на /etc/ssl/private/*.key установлены на 600.
  • CSR с правильным CN/SAN был отправлен в CA.
  • Полученный сертификат сохранён в /etc/ssl/certs/ с корректными правами.
  • Промежуточные сертификаты установлены или объединены в один файл.
  • Apache перезапущен и конфигурация проверена (apachectl configtest).
  • Проверено отсутствие предупреждений в браузере и валидность цепочки через SSL Labs или openssl s_client.

10. Runbook отката (быстрые шаги при ошибке)

Если после установки сайта появились ошибки или предупреждения:

  1. Восстановите резервный сертификат:
cp /etc/ssl/certs/www.hostmauritius.com.pem_bak /etc/ssl/certs/www.hostmauritius.com.pem
  1. Перезапустите Apache и проверьте логи (/var/log/apache2/error.log).
/etc/init.d/apache2 restart
tail -n 200 /var/log/apache2/error.log
  1. Если проблема в цепочке, убедитесь, что промежуточный сертификат указан или добавлен в файл.
  2. Если ключ и сертификат не совпадают, замените на корректные файлы из резервной копии.

11. Когда установка может не сработать (типичные причины)

  • Неправильный CN/SAN в сертификате.
  • Отсутствует или неверна цепочка промежуточных сертификатов.
  • Приватный ключ не соответствует сертификату.
  • Неправильные права доступа, из-за которых Apache не может прочитать ключ.
  • CA выдал сертификат в другом формате (DER вместо PEM) — преобразуйте с помощью openssl.

Диагностика через openssl s_client:

openssl s_client -connect www.hostmauritius.com:443 -servername www.hostmauritius.com

Вы увидите цепочку сертификатов и возможные ошибки при верификации.

12. Рекомендации по безопасности и жёсткая конфигурация

  • Используйте ключи 2048 бит и выше (предпочтительно 3072 или 4096 для долгосрочных ключей).
  • Переключитесь на RSA+SHA256 или ECDSA с современным набором шифров.
  • Ограничьте доступ к приватным ключам (root, 600).
  • Настройте HSTS и современные TLS-параметры (TLS 1.2/1.3, отключите SSLv3/TLS1.0/TLS1.1).
  • Периодически проверяйте сертификаты на истечение и автоматизируйте обновление там, где возможно.

13. Практические примеры команд — шпаргалка

  • Просмотр содержимого CSR:
openssl req -in /etc/ssl/csr/www.hostmauritius.com.csr -noout -text
  • Проверка соответствия приватного ключа и сертификата:
openssl rsa -noout -modulus -in /etc/ssl/private/www.hostmauritius.com.key | openssl md5
openssl x509 -noout -modulus -in /etc/ssl/certs/www.hostmauritius.com.pem | openssl md5
  • Преобразование DER → PEM:
openssl x509 -inform der -in cert.der -out cert.pem
  • Тест подключений к HTTPS серверу:
openssl s_client -connect www.hostmauritius.com:443 -servername www.hostmauritius.com

14. Мини-методология внедрения сертификатов (быстрый план)

  1. Подготовка: резервное копирование текущих cert/key, проверка прав.
  2. Генерация CSR с проверкой CN/SAN.
  3. Отправка CSR в CA и подтверждение владения доменом.
  4. Получение и проверка сертификата (формат, цепочка).
  5. Установка в Apache, перезапуск и тестирование.
  6. Мониторинг и автоматизация продления.

15. 1-line глоссарий

  • CSR: запрос на подпись сертификата.
  • CA: центр сертификации, выпускающий доверенные сертификаты.
  • CN: Common Name — основное доменное имя сертификата.
  • SAN: Subject Alternative Names — дополнительные имена в сертификате.
  • PEM: текстовый формат кодирования сертификатов и ключей.

Итог

Создание CSR и установка доверенного сертификата — рутинная задача, если следовать шагам: создать CSR, отправить в CA, установить выданный сертификат и, при необходимости, цепочку промежуточных сертификатов. Проверьте права доступа, соответствие ключей и корректность CN/SAN. Воспользуйтесь чек-листом и runbook, чтобы минимизировать время простоя и ошибки.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Голосовой ввод на Chromebook — как включить
Chromebook

Голосовой ввод на Chromebook — как включить

Как создать и управлять рабочим пространством Slack
Производительность

Как создать и управлять рабочим пространством Slack

Image Clipper в Samsung Gallery: как вырезать объект
Мобильные советы

Image Clipper в Samsung Gallery: как вырезать объект

Как быстро включить фонарик на Android
Android.

Как быстро включить фонарик на Android

Как делиться экраном в Discord — руководство
Руководство

Как делиться экраном в Discord — руководство

Установка Microsoft Teredo в Windows 10
Windows

Установка Microsoft Teredo в Windows 10