Openssl, перевірка ssl-сертифікатів через

OpenSSL - криптографічний пакет з відкритим вихідним кодом для роботи з SSL / TLS. Дозволяє створювати ключі RSA, DH, DSA і сертифікати X.509, підписувати їх, формувати CSR і CRT. Також є можливість шифрування даних і тестування SSL / TLS сполук.

Розглянемо на прикладах наступні випадки:
1. Генерація CSR і ключа.
2. Створення нового CSR для вже наявного ключа.
3. Перевірка коректності CSR.
4. Перевірка коректності ключа.
5. Перевірка даних SSL-сертифіката.
6. Декодування CSR.
7. Декодування SSL-сертифіката.
8. Порівняння відповідності SSL-сертифіката і CSR.
9. Порівняння відповідності SSL-сертифіката і ключа.
10. Перевірка правильності порядку встановлення CA сертифікатів.

Перше що потрібно зробити - це зайти по SSH на сервер і встановити OpenSSL.

1. Генерація CSR і ключа

Перейдемо в директорію, в якій будуть зберігається файли CSR і ключа:

Далі виконуємо команду створення CSR та ключа:

server.csr - ім'я файлу CSR;

server.key - ім'я файлу ключа;

імена можна змінювати на свій розсуд.

Після введення команди, так само як і через онлайн генератор CSR потрібно ввести дані в поля:

Openssl, перевірка ssl-сертифікатів через

Перевіряємо створилися чи файли:

Openssl, перевірка ssl-сертифікатів через

Файли створилися, все в порядку. Можна замовляти SSL-сертифікат.

Детально про замовлення та встановлення SSL-сертифіката можна ознайомитися в статті "Замовлення і установка SSL сертифікату на хостинг Ukrnames"

Ми отримали файли сертифіката (ukrnames_idua_org, ca_1, ca_2, ca_3) і перемістимо їх так само в папку / etc / ssl / certs /

Чи можемо переходити тепер до наступних пунктів статті.

2. Створення нового CSR для вже наявного ключа.

Трапляються ситуації, коли потрібно продовжити SSL-сертифікат. Потрібно заново вводити CSR запит, але тому що виконувався замовлення SSL-сертифіката близько року тому, то CSR файлу у нас в більшості випадків вже немає.

Дана команда дозволить заново згенерувати CSR-запит на підставі наявного у нас ключа (в даному прикладі ключ у нас знаходиться в папці /etc/ssl/certs/server.key):

І знову потрібно вводити дані CSR.

Openssl, перевірка ssl-сертифікатів через

Потім можемо копіювати дані файлу server.csr і продовжувати SSL-сертифікат, копіювати ключ вже не потрібно, він заново згенерований в старий файл ключа /etc/ssl/certs/server.key.

3. Перевірка коректності CSR

Виконаємо команду для перевірки коректності вмісту CSR:

Отримуємо висновок, в якому варто звернути увагу на поле verify. якщо стоїть статус "OK". значить з CSR все в порядку.

Openssl, перевірка ssl-сертифікатів через

4. Перевірка коректності ключа

Виконаємо команду для перевірки коректності вмісту ключа:

Отримуємо висновок, в якому варто звернути увагу на поле RSA key, якщо стоїть статус "ok", значить з ключем все в порядку.

Openssl, перевірка ssl-сертифікатів через

5. Перевірка даних SSL-сертифіката

Перейменуємо для зручності файл сертифіката ukrnames_idua_org в server.crt за допомогою команди:

Виконаємо команду для перевірки даних SSL-сертифіката:

Отримуємо висновок, в якому можна ознайомитись з подробицями SSL-сертифіката (хто видав, для якого домену виданий і т.д.).

Openssl, перевірка ssl-сертифікатів через

6. Декодування CSR

Іноді після генерації CSR хочеться перевірити правильність введення даних. Для цього досить виконати команду:

Отримаємо висновок, в якому варто звернути увагу на поле "Subject:", в ньому вказані всі вводяться нами дані.

Openssl, перевірка ssl-сертифікатів через

7. Декодування SSL-сертифіката

Вивести дані SSL-сертифіката можна командою:

Висновок буде ідентичний висновку в пункті 5.

8. Порівняння відповідності SSL-сертифіката і ключа

Для того щоб порівняти SSL-сертифікат і ключ, потрібно буде вивести хеш-кодування даних їх файлів і порівняти.

Отримаємо висновок на екран хешів:

Неозброєним поглядом можна побачити, що хеші збігаються, значить сертифікат відповідає ключу.

9. Порівняння відповідності SSL-сертифіката і CSR

Для даного прикладу замінимо дані CSR файлу /etc/ssl/certs/server.csr на інші:

Виконаємо команди для виведення хешів файлів /etc/ssl/certs/server.crt і /etc/ssl/certs/server.csr:

Отримаємо висновок на екран:

Як бачимо, хеші відрізняються - це означає, що сертифікат не збігається з CSR.

10. Перевірка правильності порядку встановлення CA сертифікатів.

На даному сервері, де виконувалися роботи з openssl, встановимо веб-сервер, підключимо домен ukrnames.idua.org і встановимо для нього SSL-сертифікат.

Оскільки веб-сервер не має доступу до папки / etc / ssl / certs /. то копіюємо ключ, сертифікат і проміжні сертифікати в новостворену папку / var / www / ssl /

У файлі конфігурації веб-сервера підключаємо файли SSL-сертифіката. Але щоб все коректно працювало, потрібно створити файл для проміжних сертифікатів (наприклад ca.pem) і внести в нього з певною послідовністю дані файлів проміжних сертифікатів (ca_1, ca_2, ca_3).

Щоб зрозуміти в якій послідовності потрібно додавати файли, виконаємо ряд дій.

Отримуємо дані про видавця основного сертифіката:

Тепер отримаємо дані про проміжні сертифікатах ca_1, ca_2, ca_3 (потрібно звертати увагу тільки на поля "Issuer:" і "Subject:"):

Отримаємо висновок на екран:

Зіставивши дані сертифікату і проміжних сертифікатів, можна зробити висновок, що після основного сертифіката першим проміжним повинен йти сертифікат ca_3, тому що в поле "Subject:" розділ CN файлу ca_3 збігається з полем "Issuer:" розділом CN (CN = COMODO RSA Domain Validation Secure Server CA).

Далі дивимося на поле "Issure:" розділ CN файлу ca_3 (CN = COMODO RSA Certification Authority). Шукаємо в висновках файлів ca_2 і ca_1 збіг в полях "Subject:". Збіг знайдено в файлі ca_2, даний файл ми будемо підключати другим.

І методом виключення, файл ca_1 буде підключатися найостаннішим.

Виконуємо команди для об'єднання всіх файлів проміжних сертифікатів (ca_1, ca_2, ca_3) в один (ca.pem):

Тепер можемо побачити повний ланцюжок встановлених сертифікатів за допомогою команди:

Отримаємо висновок на екран правильної ланцюжка підключення сертифікатів:

Openssl, перевірка ssl-сертифікатів через

Читайте також

  • Openssl, перевірка ssl-сертифікатів через
    Самоподпісанний SSL сертифікат: створення і установка
  • Openssl, перевірка ssl-сертифікатів через
    Відповіді на головні питання при виборі SSL сертифікату
  • Openssl, перевірка ssl-сертифікатів через
    Посилення SSL для веб-сервера Apache
  • Openssl, перевірка ssl-сертифікатів через
    Посилення SSL для веб-сервера Nginx

Схожі статті