Создание 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.
- Подтвердите отправку и дождитесь выдачи сертификата.





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 без предупреждений.

7. Файлы цепочки сертификатов и промежуточные сертификаты
Некоторые CA требуют, чтобы вы установили промежуточный сертификат (или цепочку) в конфигурацию Apache. Это важно: если браузер не может найти цепочку от вашего сертификата до доверенного корня, он покажет предупреждение.
Обычно процесс такой:
- Скачайте файл цепочки/промежуточных сертификатов от CA (например, CAcert_chain.pem) в каталог /etc/ssl/certs/.
- Откройте конфигурацию SSL виртуального хоста:
vi /etc/apache2/sites-available/www.hostmauritius.com-ssl- Добавьте или раскомментируйте директиву 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 [...] |
- Перезапустите Apache:
/etc/init.d/apache2 restartВажно о совместимости: в более новых версиях Apache (2.4.8 и выше) предпочтительнее просто конкатенировать ваш сертификат и промежуточные сертификаты в один файл и указать его в SSLCertificateFile. Директива SSLCertificateChainFile может быть устаревшей в некоторых сборках.
Пример объединённого файла (сначала серверный сертификат, затем промежуточный, затем корневой, если требуется):
cat server.crt intermediate.crt > /etc/ssl/certs/www.hostmauritius.com.pem8. Критерии приёмки
- 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 md5MD5-хэши 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 отката (быстрые шаги при ошибке)
Если после установки сайта появились ошибки или предупреждения:
- Восстановите резервный сертификат:
cp /etc/ssl/certs/www.hostmauritius.com.pem_bak /etc/ssl/certs/www.hostmauritius.com.pem- Перезапустите Apache и проверьте логи (/var/log/apache2/error.log).
/etc/init.d/apache2 restart
tail -n 200 /var/log/apache2/error.log- Если проблема в цепочке, убедитесь, что промежуточный сертификат указан или добавлен в файл.
- Если ключ и сертификат не совпадают, замените на корректные файлы из резервной копии.
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.com14. Мини-методология внедрения сертификатов (быстрый план)
- Подготовка: резервное копирование текущих cert/key, проверка прав.
- Генерация CSR с проверкой CN/SAN.
- Отправка CSR в CA и подтверждение владения доменом.
- Получение и проверка сертификата (формат, цепочка).
- Установка в Apache, перезапуск и тестирование.
- Мониторинг и автоматизация продления.
15. 1-line глоссарий
- CSR: запрос на подпись сертификата.
- CA: центр сертификации, выпускающий доверенные сертификаты.
- CN: Common Name — основное доменное имя сертификата.
- SAN: Subject Alternative Names — дополнительные имена в сертификате.
- PEM: текстовый формат кодирования сертификатов и ключей.
Итог
Создание CSR и установка доверенного сертификата — рутинная задача, если следовать шагам: создать CSR, отправить в CA, установить выданный сертификат и, при необходимости, цепочку промежуточных сертификатов. Проверьте права доступа, соответствие ключей и корректность CN/SAN. Воспользуйтесь чек-листом и runbook, чтобы минимизировать время простоя и ошибки.
Похожие материалы
Голосовой ввод на Chromebook — как включить
Как создать и управлять рабочим пространством Slack
Image Clipper в Samsung Gallery: как вырезать объект
Как быстро включить фонарик на Android
Как делиться экраном в Discord — руководство