Генерація ключів SSL
Передумови¶
- Робоча станція та сервер під керуванням Rocky Linux
- OpenSSL, інстальований на машині, на якій ви збираєтеся генерувати закритий ключ і CSR, а також на сервері, де ви в кінцевому підсумку встановлюватимете свій ключ і сертифікати
- Здатність зручно виконувати команди з командного рядка
- Корисно: знання команд SSL і OpenSSL
Вступ¶
Майже кожен веб-сайт сьогодні має працювати з сертифікатом SSL/TLS (рівень захищених сокетів). Ця процедура допоможе вам створити закритий ключ для вашого веб-сайту, а потім створити CSR (запит на підписання сертифіката), який ви використовуватимете для придбання сертифіката.
Генерація закритого ключа¶
Для непосвячених, закриті ключі SSL/TLS можуть мати різні розміри, виміряні в бітах, що визначає, наскільки важко їх зламати.
Станом на 2021 рік рекомендований розмір закритого ключа веб-сайту все ще становить 2048 біт. Ви можете піти вище, але подвоєння розміру ключа з 2048 біт до 4096 біт лише приблизно на 16% безпечніше, займає більше місця для зберігання ключа та спричиняє більші навантаження на ЦП під час обробки ключа.
Це сповільнює продуктивність вашого веб-сайту без значної безпеки. Дотримуйтеся розміру ключа 2048 і завжди стежте за тим, що зараз рекомендовано.
Для початку переконайтеся, що на вашій робочій станції та сервері встановлено OpenSSL:
dnf install openssl
Якщо його не встановлено, ваша система встановить його та всі необхідні залежності.
Прикладом домену є "example.com". Пам’ятайте, що вам потрібно буде заздалегідь придбати та зареєструвати домен. Ви можете придбати домени через кілька «Реєстраторів».
Якщо у вас немає власної DNS (системи доменних імен), ви часто можете використовувати тих самих постачальників для хостингу DNS. DNS перетворює ваш названий домен у числа (IP-адреси, IPv4 або IPv6), які може зрозуміти Інтернет. Ці IP-адреси будуть місцем фактичного розміщення веб-сайту.
Згенеруйте ключ за допомогою openssl
:
openssl genrsa -des3 -out example.com.key.pass 2048
Зверніть увагу, що ви назвали ключ із розширенням .pass. Це тому, що коли ви виконуєте цю команду, вона вимагає ввести парольну фразу. Введіть спрощену парольну фразу, яку ви можете запам’ятати, оскільки незабаром збираєтеся видалити це:
Enter pass phrase for example.com.key.pass:
Verifying - Enter pass phrase for example.com.key.pass:
Потім видаліть цю парольну фразу. Це пояснюється тим, що якщо ви не видалите його, вам потрібно буде вводити цю парольну фразу щоразу, коли ваш веб-сайт перезапускається та завантажує ваш ключ.
Можливо, вас навіть не буде поруч, щоб увійти в нього, або, що ще гірше, може не мати доступної консолі. Видаліть його зараз, щоб уникнути всього цього:
openssl rsa -in example.com.key.pass -out example.com.keys
Це знову запитає цю парольну фразу, щоб видалити її з ключа:
Введіть парольну фразу, наприклад.com.key.pass:
Тепер ваш пароль видалено з ключа після того, як ви ввели парольну фразу втретє та збережено як example.com.key
Створення CSR¶
Далі вам потрібно створити CSR (запит на підписання сертифіката), який ви використовуватимете для придбання сертифіката.
Під час генерації CSR виникає запит щодо кількох фрагментів інформації. Це атрибути X.509 сертифіката.
Одним із запитів буде «Загальне ім’я (наприклад, ВАШЕ доменне ім’я)». Це поле має містити повне доменне ім’я сервера, який захищає SSL/TLS. Якщо веб-сайт, який ви захищаєте, https://www.example.com, тоді введіть Це відкриває діалогове вікно: Далі процедура запропонує вам ввести додаткові атрибути. Пропустити їх можна, натиснувши Enter: Створення вашого CSR завершено. Кожен постачальник сертифікатів матиме в основному однакову процедуру. Ви купуєте SSL/TLS і термін (1 або 2 роки тощо), а потім надсилаєте свій CSR. Для цього вам потрібно буде використати команду Що покаже вам щось на зразок цього: Ви хочете скопіювати все, включно з рядками «ПОЧАТИ ЗАПИТУ НА СЕРТИФІКАТ» і «КІНЕЦЬ ЗАПИТУ НА СЕРТИФІКАТ». Потім вставте їх у поле CSR на веб-сайті, де ви купуєте сертифікат. Перед видачею сертифіката вам, можливо, доведеться виконати інші кроки перевірки залежно від власності на домен і реєстратора, яким ви користуєтеся. Згенерувати всі деталі для придбання сертифіката веб-сайту не складно за допомогою цієї процедури. Author: Steven Spencer Contributors: Ezequiel Bruni, Ganna Zhyrnovaopenssl req -new -key example.com.key -out example.com.csr
Назва країни (2-літерний код) [XX]:
введіть двозначний код країни, у якій знаходиться ваш сайт, наприклад "US"State or Province Name (full name) []:
введіть повну офіційну назву свого штату або провінції, наприклад «Nebraska»Locality Name (eg, city) [Default City]:
введіть повну назву міста, наприклад "Omaha"Organization Name (eg, company) [Default Company Ltd]:
Якщо хочете, ви можете ввести організацію, частиною якої є цей домен, або просто натиснути Enter, щоб пропустити.Organizational Unit Name (eg, section) []:
Це буде опис підрозділу організації, до якої належить ваш домен. Знову ж таки, ви можете просто натиснути Enter, щоб пропустити.Common Name наприклад, ваше ім'я або ім'я хосту вашого сервера []:
Тут вам потрібно ввести ім’я хосту свого сайту, наприклад «www.example.com»Email Address []:
Це поле необов’язкове, ви можете заповнити його або просто натиснути Enter, щоб пропустити.Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Придбання Сертифікату¶
more
, а потім скопіювати вміст вашого файлу CSR.more example.com.csr
-----BEGIN CERTIFICATE REQUEST-----
MIICrTCCAZUCAQAwaDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5lYnJhc2thMQ4w
DAYDVQQHDAVPbWFoYTEcMBoGA1UECgwTRGVmYXVsdCBDb21wYW55IEx0ZDEYMBYG
A1UEAwwPd3d3Lm91cndpa2kuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEAzwN02erkv9JDhpR8NsJ9eNSm/bLW/jNsZxlxOS3BSOOfQDdUkX0rAt4G
nFyBAHRAyxyRvxag13O1rVdKtxUv96E+v76KaEBtXTIZOEZgV1visZoih6U44xGr
wcrNnotMB5F/T92zYsK2+GG8F1p9zA8UxO5VrKRL7RL3DtcUwJ8GSbuudAnBhueT
nLlPk2LB6g6jCaYbSF7RcK9OL304varo6Uk0zSFprrg/Cze8lxNAxbFzfhOBIsTo
PafcA1E8f6y522L9Vaen21XsHyUuZBpooopNqXsG62dcpLy7sOXeBnta4LbHsTLb
hOmLrK8RummygUB8NKErpXz3RCEn6wIDAQABoAAwDQYJKoZIhvcNAQELBQADggEB
ABMLz/omVg8BbbKYNZRevsSZ80leyV8TXpmP+KaSAWhMcGm/bzx8aVAyqOMLR+rC
V7B68BqOdBtkj9g3u8IerKNRwv00pu2O/LOsOznphFrRQUaarQwAvKQKaNEG/UPL
gArmKdlDilXBcUFaC2WxBWgxXI6tsE40v4y1zJNZSWsCbjZj4Xj41SB7FemB4SAR
RhuaGAOwZnzJBjX60OVzDCZHsfokNobHiAZhRWldVNct0jfFmoRXb4EvWVcbLHnS
E5feDUgu+YQ6ThliTrj2VJRLOAv0Qsum5Yl1uF+FZF9x6/nU/SurUhoSYHQ6Co93
HFOltYOnfvz6tOEP39T/wMo=
-----END CERTIFICATE REQUEST-----
Висновок¶