Що таке CSR і як створити запит на підпис SSL-сертифіката
CSR (Certificate Signing Request) означає запит на підпис сертифіката. Він містить відкритий ключ і відомості, потрібні для випуску SSL/TLS-сертифіката. Створити запит можна в панелі хостингу, через OpenSSL на сервері або в браузері. Виберіть спосіб, за якого зможете зберегти відповідний закритий ключ і встановити сертифікат у потрібну службу.
CSR, закритий ключ і сертифікат: три окремі файли
| Файл | Що містить | Куди передавати |
|---|---|---|
| CSR, зазвичай .csr | Відкритий ключ, імена й запитані відомості про власника | Центру сертифікації або у форму замовлення сертифіката. |
| Закритий ключ, зазвичай .key | Таємну частину пари ключів | Зберігати під власним контролем; встановити в потрібну службу захищеним каналом. |
| Сертифікат, зазвичай .crt чи .pem | Відкритий ключ та імена, підписані центром сертифікації | Встановити з відповідним ключем і проміжними сертифікатами. |
Розширення файлу саме по собі не доводить його вмісту. CSR у форматі PEM починається рядком BEGIN CERTIFICATE REQUEST, закритий ключ містить PRIVATE KEY. Відкритий ключ із CSR пов’язаний із певним закритим ключем. Центр сертифікації перевіряє запит і контроль над іменами; створення CSR ще не підтверджує цих прав.
Як створити CSR у панелі хостингу або IIS
- Відкрийте розділ SSL/TLS-сертифікатів потрібного сайту та знайдіть створення запиту CSR. Якщо сертифікатом уже керує автоматизація, спочатку з’ясуйте, чи потрібен ручний запит.
- Укажіть домен та інші потрібні імена, якщо панель це дозволяє. Для сертифіката з перевіркою організації заповніть її дані за вимогами вибраного центру, а не довільним текстом.
- Створіть і збережіть CSR. Ключ зазвичай залишається в панелі чи сховищі сервера: перевірте це перед надсиланням запиту. Завершуйте встановлення там, де доступний саме цей ключ.
Наприклад, у Plesk почніть із розділу домену SSL/TLS Certificates. Порядок та обмеження наведено в інструкції Plesk. Не кожна панель підтримує запити з кількома іменами SAN, тому перевіряйте готовий CSR.
У Windows/IIS виберіть вузол сервера та Server Certificates → Create Certificate Request. Це шлях IIS, а не команда Linux; ключ зберігається у сховищі Windows. Покроковий приклад для IIS є в документації AWS. Не вибирайте Create Self-Signed Certificate замість запиту до публічного центру.
Як створити CSR через OpenSSL на сервері
Приклад розрахований на оболонку Linux та OpenSSL 3.x. Працюйте в новій порожній папці з обмеженим доступом і замініть example.com та www.example.com власними іменами. Переконайтеся, що таких файлів ще немає: команда записує новий ключ і запит.
umask 077
openssl req -new -newkey rsa:2048 -sha256 -noenc \
-keyout example.com.key -out example.com.csr \
-subj "/CN=example.com" \
-addext "subjectAltName=DNS:example.com,DNS:www.example.com"
CN задає основне ім’я, SAN перелічує потрібні DNS-імена. Параметр -noenc записує ключ без парольного шифрування, щоб служба запускалася без ручного введення пароля. umask 077 обмежує доступ до нових файлів їхнім власником. Не зберігайте ключ у публічній папці сайту. Для ключа з паролем приберіть -noenc і врахуйте спосіб запуску служби. Параметри описано в документації openssl req.
Як створити CSR онлайн і залишити ключ у себе
- Відкрийте генератор CSR через HTTPS на пристрої, якому довіряєте. Введіть домен, розгорніть додаткові адреси й перевірте, чи потрібна версія з www або основний домен разом із Wildcard.
- Виберіть тип ключа, який підтримують сервер і центр сертифікації. Генератор пропонує RSA 2048, RSA 4096 та ECDSA P-256. За потреби заповніть дані організації, потім створіть запит.
- Завантажте обидва результати. Надсилайте CSR, а закритий ключ збережіть окремо в захищеному місці. У Host4Biz ключ створюється в браузері та не надходить на наш сервер; копії для відновлення в нас немає.
Якщо правила вашої компанії вимагають створювати ключ на сервері чи у спеціальному пристрої, дотримуйтеся цього порядку. Генерація в браузері також потребує довіри до пристрою та завантаженої сторінки.
Як перевірити готовий CSR перед надсиланням
У тому самому інструменті виберіть перевірку готового CSR і вставте запит повністю. Звірте імена SAN, тип і довжину ключа, відомості про організацію та результат перевірки підпису. Для файлу на сервері виконайте:
openssl req -in example.com.csr -noout -text -verify
Команда показує вміст запиту й перевіряє його власний підпис. Вона не підтверджує контроль над доменом або майбутній випуск сертифіката. Щоб перевірити відповідність файлу закритого ключа, порівняйте SHA-256 двох відкритих ключів:
openssl pkey -in example.com.key -pubout -outform DER | openssl dgst -sha256
openssl req -in example.com.csr -pubkey -noout | openssl pkey -pubin -outform DER | openssl dgst -sha256
Хеші мають збігатися. Команди показують відбитки відкритого ключа, а не сам закритий ключ, і працюють з RSA та EC. Якщо залишився лише старий сертифікат, отримати з нього нову робочу пару не можна: для нового запиту потрібен відповідний закритий ключ або нова пара.
Що зберегти до встановлення сертифіката
Збережіть CSR, відповідний закритий ключ і список замовлених імен. Зробіть захищену резервну копію ключа, обмежте доступ і передавайте його лише туди, де працюватиме TLS. Не надсилайте ключ поштою, у форму замовлення чи запит підтримки. Якщо ключ втрачено, потрібні нова пара, новий CSR та перевипуск сертифіката.
Підготовлений CSR можна використати під час замовлення відповідного SSL-сертифіката. Після випуску встановіть його з ключем і ланцюжком, а потім перевірте кожне ім’я сайту чи поштової служби. Сам збережений CSR не вмикає HTTPS.