Вступ
SSL/TLS-сертифікати забезпечують захищене з’єднання між клієнтом і сервером. Але іноді після встановлення виникають помилки: браузер скаржиться на “недійсний сертифікат”, “невідомий центр сертифікації” чи “неправильний ланцюжок”.
Щоб уникнути цих проблем, важливо вміти перевіряти сертифікат і його ланцюжок довіри безпосередньо на сервері. У Linux для цього зручно використовувати OpenSSL.

Перевірка відповідності приватного ключа і сертифіката
openssl x509 -noout -modulus -in server.crt | openssl md5
openssl rsa -noout -modulus -in server.key | openssl md5
Якщо MD5-хеші однакові — ключ і сертифікат належать один одному.
Перевірка терміну дії сертифіката
openssl x509 -in server.crt -noout -dates
Приклад виводу:
notBefore=Aug 1 00:00:00 2024 GMT
notAfter=Oct 30 23:59:59 2025 GMT
notBefore
— сертифікат дійсний починаючи з цієї дати.notAfter
— сертифікат закінчується у цю дату
Перегляд вмісту об’єднаного сертифіката
Якщо у вас один .crt
файл, він може містити одразу кілька сертифікатів (доменний, проміжні, кореневий).
Подивитися структуру можна так:
openssl crl2pkcs7 -nocrl -certfile server.crt | openssl pkcs7 -print_certs -noout
Буде виведено результат, де: перший блок — сертифікат домену, наступні — проміжні, а останній — кореневий CA (self-signed).
Розділення .crt
на сертифікат домену та ланцюжок CA
Виділити перший сертифікат (домен):
awk 'BEGIN{c=0} /BEGIN CERTIFICATE/{c++} c==1{print}' server.crt > domain.crt
Виділити всі наступні (проміжні та кореневі):
awk 'BEGIN{c=0} /BEGIN CERTIFICATE/{c++} c>1{print}' server.crt > chain.crt
Перевірка ланцюжка сертифікатів
openssl verify -CAfile chain.crt domain.crt
Очікувано:
domain.crt: OK
Перевірка через реальне підключення
Щоб переконатися, що сервер віддає правильний сертифікат:
openssl s_client -connect example.com:443 -servername example.com -showcerts
Наприкінці шукайте:
Verify return code: 0 (ok)
Використання на вебсервері
Для налаштування HTTPS зазвичай потрібні два файли:
- privkey.key — приватний ключ
- fullchain.crt — сертифікат домену + проміжні сертифікати (без кореневого)
Саме цей fullchain.crt
треба вказати у Nginx або Apache
Висновки
Перевірка SSL-сертифіката в Linux — це простий, але важливий крок для забезпечення безпечної роботи вашого сайту.
OpenSSL дозволяє:
- перевірити, чи відповідає ключ сертифікату,
- переконатися, що сертифікат ще дійсний,
- перевірити правильність ланцюжка довіри,
- побачити, що саме віддає сервер при TLS-підключенні.
Якщо ланцюжок зібрано правильно, ви отримаєте повідомлення OK
, а браузери не будуть показувати попередження про безпеку.