Головна / База знань / Інструменти та інтеграції / Перевірка SSL-сертифіката сайту: онлайн, у браузері та через openssl

Перевірка SSL-сертифіката сайту: онлайн, у браузері та через openssl

Інструменти та інтеграції 8 хв читання Оновлено 17.10.2026
Перевірка SSL-сертифіката — це звірка терміну дії, імені домену, ланцюжка довіри й видавця. Найшвидше — ввести домен в онлайн-перевірку; те саме покажуть замок у браузері та команда openssl s_client.

Перевірка SSL-сертифіката показує, чи довіряють браузери вашому https: чи не минув термін, чи збігається ім'я з доменом, чи повний ланцюжок і хто видав сертифікат. Найшвидше перевірити SSL онлайн — ввести домен у перевірку SSL-сертифіката: результат буде за кілька секунд. Без робочого сертифіката браузер позначає сайт небезпечним, і частина відвідувачів іде, не дочекавшись завантаження.

Як перевірити SSL-сертифікат онлайн: покроково

  1. Відкрийте перевірку SSL-сертифіката і введіть домен: example.com. Можна вставити й повну адресу — інструмент сам виділить ім'я хоста. Нестандартний порт вказують через двокрапку: example.com:8443.
  2. Інструмент підключається до сервера так само суворо, як браузер: перевіряє ланцюжок довіри та збіг імені. Якщо сувора перевірка не пройшла, він підключається вдруге без неї — щоб усе одно показати сертифікат і пояснити, що саме не так.
  3. Подивіться на верхній банер: скільки днів лишилося до кінця терміну. Менше 30 днів — жовте попередження; червоний банер означає, що браузери сертифікату не довіряють, а причини перелічені нижче: минув термін, сертифікат видано на інше ім'я, він самопідписаний або ланцюжок не перевіряється. Під списком показано й відповідь OpenSSL під час суворої перевірки.
  4. Перегляньте картки з деталями: Common Name, видавець, дати «дійсний з» і «дійсний до», тип і довжина ключа (RSA коротший за 2048 біт позначається як слабкий), алгоритм підпису та список альтернативних імен (SAN) — у ньому мають бути всі варіанти домену, зокрема з www.
  5. Повторіть перевірку для www.example.com і для піддоменів: у кожного імені може бути свій сертифікат, і помилка часто сидить саме там, куди ніхто не заходив.

Чесно про обмеження: це разова перевірка одного імені. Вона не перебирає версії TLS і шифри, які приймає сервер, не шукає змішаний вміст на сторінках і не стежить за терміном сама. Версії протоколів перевіряють командою openssl з розділу нижче або сканером Shield.

Як подивитися сертифікат у браузері

  • Chrome, Edge та інші браузери на Chromium: натисніть значок ліворуч від адреси, далі «Підключення захищене» → «Сертифікат дійсний». Відкриється вікно з полями «Кому видано», «Ким видано», терміном дії та вкладкою з ланцюжком.
  • Firefox: замок → «Безпечне з'єднання» → «Докладніше» → «Переглянути сертифікат».
  • Safari: замок в адресному рядку → «Показати сертифікат».

Браузер зручний, щоб швидко побачити термін і видавця, але не годиться як остаточна перевірка: він кешує проміжні сертифікати й може «добудувати» неповний ланцюжок, який робот чи мобільний застосунок не приймуть.

Перевірка SSL через командний рядок (openssl)

Утиліта openssl є в macOS і Linux, у Windows — наприклад, у складі Git for Windows. Базова команда підключається до сервера й друкує ланцюжок і результат перевірки:

openssl s_client -connect example.com:443 -servername example.com </dev/null

Параметр -servername передає ім'я сайту (SNI). Без нього сервер, на якому живе кілька сайтів, може віддати сертифікат іншого домену, і ви лагодитимете помилку, якої немає. У виводі шукайте рядок Verify return code: 0 (ok) — ланцюжок у порядку; 21 (unable to verify the first certificate) — зазвичай сервер не віддає проміжний сертифікат; 10 (certificate has expired) — минув термін; 18 (self-signed certificate) — самопідписаний.

Дати, власника й видавця зручно витягти одним рядком:

openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -noout -dates -subject -issuer
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -noout -ext subjectAltName
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -noout -checkend 1209600

notBefore і notAfter — початок і кінець терміну, -ext subjectAltName виводить список імен (OpenSSL 1.1.1 і новіші), а -checkend 1209600 відповідає, чи спливе сертифікат найближчими 14 днями (1 209 600 секунд) — цей рядок зручно поставити в cron для моніторингу.

Чи приймає сервер застарілий протокол, покаже спроба підключитися лише ним: openssl s_client -connect example.com:443 -servername example.com -tls1_1 </dev/null. Якщо рукостискання пройшло — TLS 1.1 на сервері ввімкнено. Застереження: у свіжих збірках OpenSSL старі версії можуть бути заборонені на боці клієнта, і тоді помилка нічого не каже про сервер. Для TLS 1.2 і 1.3 використовуйте -tls1_2 і -tls1_3.

Що дивитися в звіті

ПараметрЩо повинно бути
Термін діїБільше двох тижнів в запасі; безкоштовні сертифікати живуть близько трьох місяців і оновлюються автоматично
Ім'я в сертифікатіЗбігається з доменом, включаючи варіант з www
Ланцюг довіриПовна: без проміжного сертифіката частина клієнтів видасть помилку
ПротоколиTLS 1.2 і 1.3; застарілі версії краще вимкнути
ВидавецьВідомий центр сертифікації, а не самопідписаний сертифікат
Часта пастка: працює в браузері, ламається у робота
Браузери кешують проміжні сертифікати, тому неповний ланцюг у вас може відкриватися нормально, а у пошукового робота або мобільного додатку — ні. Саме тому перевіряти треба зовнішнім інструментом, а не «у мене ж відкривається».

Що робити при помилках

  1. Закінчився термін. Оновіть сертифікат і перевірте, що автопродовження дійсно працює.
  2. Не збігається ім'я. Додайте потрібні домени в сертифікат або налаштуйте окремий.
  3. Неповний ланцюг. Догрузіть проміжний сертифікат на сервер.
  4. Змішане вміст. Замість посилань на картинки, стилі та скрипти з http на https, інакше браузер скаржиться навіть при валідному сертифікаті.

Помилки SSL: як виглядають і як виправити

ПомилкаЯк проявляєтьсяЩо зробити
Минув термінChrome: NET::ERR_CERT_DATE_INVALID; openssl: certificate has expiredПеревипустіть сертифікат і перевірте автопродовження. Частий випадок: новий файл уже на диску, але вебсервер не перезавантажили, і він віддає старий.
Ім'я не збігаєтьсяNET::ERR_CERT_COMMON_NAME_INVALIDВипустіть сертифікат з усіма потрібними іменами в SAN — наприклад, example.com і www.example.com. Wildcard *.example.com покриває один рівень піддоменів, але не сам example.com і не a.b.example.com.
Неповний ланцюжокВ одних браузерах відкривається, в інших — NET::ERR_CERT_AUTHORITY_INVALID; openssl: unable to verify the first certificateВстановіть повний ланцюжок: сертифікат сайту плюс проміжні. Для Let's Encrypt у nginx вказують fullchain.pem, а не cert.pem.
Самопідписаний сертифікатNET::ERR_CERT_AUTHORITY_INVALID; openssl: self-signed certificateЗамініть на сертифікат довіреного центру. Безкоштовний варіант — Let's Encrypt або сертифікат, який випускає хостинг чи CDN.
Лише застарілий TLSЗазвичай ERR_SSL_VERSION_OR_CIPHER_MISMATCHУвімкніть TLS 1.2 і 1.3, вимкніть SSL 3.0, TLS 1.0 і 1.1, оновіть вебсервер і бібліотеку OpenSSL.
Неправильний часПомилка терміну в сертифіката, який насправді дійснийПеревірте годинник на пристрої користувача або на сервері: сертифікат звіряється з поточною датою.

Термін дії SSL-сертифікатів

Максимальний термін публічних TLS-сертифікатів задають правила CA/Browser Forum — об'єднання центрів сертифікації та розробників браузерів. Довго стеля становила 398 днів. У квітні 2025 року форум ухвалив бюлетень SC-081 про поетапне скорочення, і перший крок уже діє:

Дата випуску сертифікатаМаксимальний термін
з 15 березня 2026 року200 днів
з 15 березня 2027 року100 днів
з 15 березня 2029 року47 днів

Обмеження застосовується за датою випуску: уже виданий сертифікат допрацьовує свій термін. Деталі — у бюлетені SC-081 на сайті CA/Browser Forum. Безкоштовні сертифікати Let's Encrypt і так короткі: за FAQ Let's Encrypt вони діють 90 днів (за бажанням — 6 днів), а 90-денні радять продовжувати кожні 60 днів. Висновок простий: ручне продовження раз на рік відходить у минуле, продовжувати має автомат.

Автопродовження Let's Encrypt: як переконатися, що воно працює

sudo certbot certificates
sudo certbot renew --dry-run
systemctl list-timers | grep certbot
  • certbot certificates покаже всі сертифікати на сервері й дату закінчення кожного.
  • certbot renew --dry-run прожене продовження на тестовому сервері Let's Encrypt, не чіпаючи бойові сертифікати. Якщо тест падає, справжнє продовження теж упаде.
  • Продовження запускає таймер systemd або завдання cron; якщо certbot встановлено зі snap, таймер називається snap.certbot.renew.timer. Немає ні того, ні іншого — автопродовження немає.
  • Щоб вебсервер підхопив новий сертифікат, додайте перезавантаження після продовження: --deploy-hook "systemctl reload nginx".
  • Типові причини збою: шлях /.well-known/acme-challenge/ закрито редиректом, паролем чи правилом файрвола; домен переїхав на інший сервер або CDN, а certbot лишився на старому.

Якщо сертифікат випускає хостинг чи CDN, продовження зазвичай на їхньому боці — але лише поки домен вказує на них. Після зміни DNS перевірте сертифікат знову.

Моніторинг сертифіката

  • Сповіщення заздалегідь. Зовнішній моніторинг або скрипт з openssl x509 -checkend у cron: нехай сигнал приходить щонайменше за два тижні до кінця терміну.
  • Повторна перевірка після продовження. Проженіть домен через перевірку SSL: новий термін, повний ланцюжок, усі імена в SAN.
  • Журнали Certificate Transparency. Усі публічні сертифікати потрапляють у відкриті журнали; пошук за доменом (наприклад, на crt.sh) показує, які сертифікати на нього випускали, — так видно й забуті піддомени, й неочікувані випуски.
  • Регулярний аудит. Shield — платна перевірка безпеки (разово з балансу або за підпискою на моніторинг); у групі «TLS і сертифікат» він дивиться термін і валідність сертифіката, застарілі TLS 1.0/1.1, редирект з HTTP на HTTPS і HSTS.

Безкоштовний чи платний сертифікат

Для пошуку різниці немає: браузер і робот перевіряють валідність, а не ціну. Безкоштовні сертифікати видаються автоматично і оновлюються самі — цього достатньо переважній більшості сайтів. Платні мають сенс там, де потрібна розширена перевірка організації, страховка або підтримка рідкісних сценаріїв. Головне — щоб автопродовження дійсно працювало: прострочений дорогий сертифікат гірший за вчасно оновлений безкоштовний.

Як це пов'язано з просуванням

Https — базова вимога: сайт без нього втрачає довіру і відвідувачів. Крім того, помилка сертифіката заважає нашим перевіркам: сторінка може виявитися недоступною для обходу. Повну картину безпеки дає Shield, а заголовки захисту розібрані в статті про заголовки безпеки.

Часті запитання

Чому сертифікат працює в браузері, але інструмент показує помилку?
Браузери кешують проміжні сертифікати. За неповного ланцюжка сайт у вас відкривається, а в робота чи мобільного клієнта — ні.
За скільки днів до закінчення оновлювати?
Тримайте запас щонайменше у два тижні й перевірте, що автопродовження справді спрацьовує.
Що таке змішаний вміст?
Це завантаження картинок, стилів або скриптів по http на https-сторінці: браузер позначає сторінку небезпечною навіть за валідного сертифіката.
Як перевірити SSL-сертифікат сайту онлайн?
Введіть домен у перевірку SSL-сертифіката PromoPilot: вона покаже термін дії й кількість днів, що лишилися, видавця, імена в сертифікаті (SAN), ключ і ланцюжок, а якщо браузери сертифікату не довіряють — причину.
Як перевірити SSL-сертифікат через командний рядок?
Командою openssl s_client -connect example.com:443 -servername example.com. Дати, власника й видавця покаже та сама команда, якщо передати її вивід в openssl x509 -noout -dates -subject -issuer.
Який максимальний термін дії SSL-сертифіката?
Для публічних сертифікатів, випущених з 15 березня 2026 року, — 200 днів; з 15 березня 2027 року — 100 днів, з 15 березня 2029 року — 47 днів (рішення CA/Browser Forum SC-081). Раніше стеля становила 398 днів.
Чи була стаття корисною?
Спробуйте на своєму проєкті Все, що описано в статті, доступно в кабінеті — бонус при реєстрації вже на балансі.
Відкрити кабінет