Security

SSL Checker

Перевіряє ланцюг сертифікатів, термін і алгоритм.

Hostname host or host:port (default 443)
example.com:443
TLSv1.3 expires in 34d
Verdict
  • Certificate is valid for this host and not expired.
Subject?
example.com
Issuer?
Cloudflare TLS Issuing ECC CA 3 — SSL Corporation
Valid from
2026-05-31T21:39:12Z
Valid to?
2026-08-29T21:41:26Z
Signature algorithm?
ecdsa-with-SHA256
Public key?
EC 256 bits
Negotiated cipher?
TLS_AES_256_GCM_SHA384
Chain depth?
4
Hostname matches?
yes
Self-signed?
no
Subject Alternative Names?
  • example.com
  • *.example.com
Raw certificate (PEM)
-----BEGIN CERTIFICATE----- MIID5zCCA42gAwIBAgIQGqc/6iV74zNLmilVLm+HjjAKBggqhkjOPQQDAjBRMQsw CQYDVQQGEwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSgwJgYDVQQDDB9D bG91ZGZsYXJlIFRMUyBJc3N1aW5nIEVDQyBDQSAzMB4XDTI2MDUzMTIxMzkxMloX DTI2MDgyOTIxNDEyNlowFjEUMBIGA1UEAwwLZXhhbXBsZS5jb20wWTATBgcqhkjO PQIBBggqhkjOPQMBBwNCAAR3K9vg9mgByiZluphXApVAUpQtIO9MPLbbdVxu2SDI KEYKZhTqszaA9lNa6oAGtsi++/m+uwI35sAG+zkIpAeOo4ICgDCCAnwwDAYDVR0T AQH/BAIwADAfBgNVHSMEGDAWgBSDA/3n9vVKTRVB9O0iFtMyCj7KZjBsBggrBgEF BQcBAQRgMF4wOQYIKwYBBQUHMAKGLWh0dHA6Ly9pLmNmLWkuc3NsLmNvbS9DbG91 ZGZsYXJlLVRMUy1JLUUzLmNlcjAhBggrBgEFBQcwAYYVaHR0cDovL28uY2YtaS5z c2wuY29tMCUGA1UdEQQeMByCC2V4YW1wbGUuY29tgg0qLmV4YW1wbGUuY29tMCMG A1UdIAQcMBowCAYGZ4EMAQIBMA4GDCsGAQQBgqkwAQMBATATBgNVHSUEDDAKBggr BgEFBQcDATBTBgNVHR8ETDBKMEigRqBEhkJodHRwOi8vYy5jZi1pLnNzbC5jb20v YWU4MDFlZDFjNTViYjU3OWQ3OTIwOGIwZDc3MmFjZmI4Y2MzYTIwOC5jcmwwDgYD VR0PAQH/BAQDAgeAMA8GCSsGAQQBgtpLLAQCBQAwggEEBgorBgEEAdZ5AgQCBIH1 BIHyAPAAdgCUTkOH+uzB74HzGSQmqBhlAcfTXzgCAT9yZ31VNy4Z2AAAAZ6AAzGJ AAAEAwBHMEUCIQCBv0JM0mXaiiQ9efuArkk3O2t/RQ39q7O3oKtYCvOUhQIgdn2u t5rn+AWzBqZ9m1VOlMLpT/jy2M92Is6itMy9rR8AdgDIo8R/x7OtuTVrAT9qehJt 4zpOQ6XGRvmXrTl1mR3PmgAAAZ6AAzGgAAAEAwBHMEUCIQCoc8r0LVigaz6pvG8s v0+uBqzf+LPNPxwYxtgkuVdNMwIgAbK/qRNJIWljIVp30PFWjmM+SnoT80ShaPJM GdbtNLMwCgYIKoZIzj0EAwIDSAAwRQIhALDciGbviRHUIMPez2CVH+Vc0NiaT8Br FrUGD7dej3D4AiAfs90UtVHGYKTXYYPIJlVqUK1amlBBby7M2KI7pSMjxA== -----END CERTIFICATE-----
Що означає кожне поле?

Опис полів

Subject (кому видано)

Поле Subject ідентифікує власника сертифіката. Сучасні сертифікати спираються на CN (Common Name) + Subject Alternative Names. Organization (O), Organizational Unit (OU), Locality (L) — присутні у EV/OV-сертифікатах; у DV (Let's Encrypt тощо) їх немає.

Issuer (хто видав)

Ідентифікує CA, що поручився за суб'єкта. У браузерах вшита довірена root-store; сертифікат від нелояльного видавця (або self-signed) дає NET::ERR_CERT_AUTHORITY_INVALID. Поширені публічні CA: Let's Encrypt, DigiCert, Sectigo, GlobalSign, GoDaddy.

Subject Alt Names (SAN)

Один сертифікат може покривати кілька хостів через розширення SAN — типово wildcard (<code>*.example.com</code>) або multi-domain (SAN). З 2017-го браузери ігнорують Common Name і збігають лише SAN. Якщо вашого хоста в списку немає — сертифікат для нього недійсний.

Глибина ланцюжка

Ланцюг довіри: leaf-сертифікат сервера → один або кілька проміжних CA → root CA з браузерного trust-store. Звичайна глибина — 2 (leaf + 1 intermediate). Якщо сервер забув віддати проміжні — клієнт побачить "incomplete chain".

Алгоритм підпису

Описує, як CA підписав сертифікат. <code>sha256WithRSAEncryption</code> (RSA + SHA-256) — стандарт за замовчуванням. <code>ecdsa-with-SHA256</code> — еліптичні криві, коротші ключі, та сама криптостійкість. <code>sha1WithRSAEncryption</code> зламано з 2017 року — браузери відхиляють.

Публічний ключ

Публічна половина криптопари. RSA 2048 бітів — практичний мінімум; 3072+ для довгограючих ключів. EC P-256 коротший (~256-бітна еквівалентна стійкість) та швидший. Усе нижче за RSA 2048 чи старіше за P-256 треба замінити.

Узгоджений шифр

Описує шифрування фактичних даних: key exchange (ECDHE), шифр (AES_256_GCM, CHACHA20_POLY1305), MAC (SHA384). Forward-secret suites (ECDHE-*) — вимога більшості стандартів безпеки. CBC і RC4 — застаріле.

Збіг імені хоста

Навіть валідний сертифікат відхиляється, якщо запитуваного хосту немає у SAN. Wildcards покривають точно один DNS-label: <code>*.example.com</code> покриває <code>www.example.com</code>, але НЕ <code>a.b.example.com</code> чи <code>example.com</code>.

Self-signed

У self-signed Subject = Issuer. Браузери йому не довіряють — буде "NET::ERR_CERT_AUTHORITY_INVALID". Прийнятно для внутрішніх/staging-середовищ, де ви контролюєте і сервер, і клієнт. Для production — Let's Encrypt (безкоштовно) або публічний CA.

Чинний до (expiry)

Браузери відхиляють прострочені сертифікати беззастережно. Сертифікати публічних CA живуть 90–397 днів. Налаштовуйте автоматичне продовження: ACME / Let's Encrypt — за 60 днів до expiry; комерційні CA — за 30. Очікуйте поступовий перехід на обов'язкові 90 днів до 2027 року.

Повністю валідний

Усі базові перевірки пройдені: ланцюг довіри замикається на browser-trusted root, хост у SAN збігається, сертифікат у межах validity window, алгоритм підпису сучасний. Саме цей стан браузер показує зеленим замком.

Про цей інструмент

SSL Checker відкриває справжнє TLS-з'єднання до вашого хоста, захоплює ланцюг сертифікатів, який сервер пред'являє, і повідомляє все важливе: subject, issuer, дати чинності, повний intermediate-ланцюг до trust-anchor, signature algorithm, розмір публічного ключа, підтримувані TLS-версії та cipher suites, Subject Alternative Names і статус OCSP stapling. Перевірка йде server-side з нашого франкфуртського хоста, тож ви бачите саме те, що бачить віддалений відвідувач — а не те, що закешував ваш браузер.

Чистий сертифікат — це не просто «зелений замочок». Ми валідуємо відповідність hostname проти SANs (legacy-поле CN — лише інформативне, згідно з RFC 6125), перевіряємо, що кожна ланка ланцюга підписана наступною, що intermediates показані в правильному порядку (часта помилка деплою), що leaf не прострочений і ще чинний, і попереджаємо, якщо leaf використовує слабкий підпис (SHA-1) або недостатній ключ (RSA < 2048 біт). Все це в одному HTTPS-handshake.

Коли використовувати цей інструмент

  • Перевірка перед деплоєм. Після провіжина Let's Encrypt або купівлі комерційного серта переконайтесь, що ланцюг повний, перш ніж направити на нього реальних користувачів.
  • Моніторинг прострочки. Виявляйте серти, що спливуть найближчі 7/14/30 днів, і поновлюйте до того, як спрацюють алярми.
  • Дебаг mixed-content. Знайдіть субдомени, які пред'являють інший (або self-signed) серт, ніж основний сайт.
  • Sanity-перевірки міграції. Після переїзду на новий CDN або балансер переконайтесь, що новий серт і ланцюг — саме ті, які ви очікуєте.

Що насправді означає «chain incomplete»

Браузери та OS trust stores містять кілька сотень root CA. Ваш leaf-сертифікат підписаний intermediate, який підписаний наступним intermediate або напряму root. Web-сервер мусить надсилати leaf + усі intermediates до (але не включно з) root — Firefox і Chrome спробують дотягнути відсутні intermediates через AIA-extension, але iOS, старий Android і більшість non-browser TLS-клієнтів відхилять handshake. Наш chain-інспектор каже точно, якої ланки бракує, щоб ви вставили правильний intermediate у конфіг сервера.

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

Браузер показує замочок, а ваш інструмент каже «chain incomplete» — хто має рацію?

Обидва. Сучасні desktop-браузери латають неповні ланцюги, підтягуючи intermediates через AIA-extension або зі своїх кешів — користувач бачить робочий замочок. Але iOS Safari, багато Android-аплікацій, curl, OpenSSL-клієнти і non-browser TLS-бібліотеки цього не роблять. Якщо наш інструмент каже «incomplete», ваш сайт буде падати на нетривіальній частці клієнтів; фікс — віддавати повний ланцюг з сервера.

Що таке OCSP stapling?

Спосіб для сервера прикріпити нещодавнє CA-підписане підтвердження чинності серта під час TLS-handshake — щоб браузер не мусив дзвонити в OCSP-responder CA на кожному коннекті. Stapling прискорює завантаження сторінок і захищає приватність користувача (CA ніколи не дізнається, які сайти користувач відвідує). Більшість сучасних web-серверів (nginx, Apache 2.4, Caddy) це підтримують; багато вмикають за замовчуванням.

Як часто перевіряти?

Раз на тиждень — достатньо для продакшну. Let's Encrypt-серти поновлюються кожні 60–90 днів, комерційні — щороку; так чи інакше непомічений expiry — найпоширеніший SSL-фейл. Ми кешуємо результати на 10 хвилин, тож швидка повторна перевірка після деплою дає миттєвий зворотний зв'язок. Парте з автоматизованим монітором (Uptime Kuma, StatusCake) для проактивних алертів.

Чому інструмент не валідує проти мого приватного CA?

Ми використовуємо стандартний публічний CA trust bundle (Mozilla's, який також використовує більшість ОС). Приватні CA — внутрішні корпоративні root, ACME-CA в homelab — не в жодному публічному trust store, тож валідація ланцюга (правильно) маркуватиме їх як untrusted. Деталі сертифіката (subject, дати, розмір ключа) усе одно повідомляються; лише перевірка trust-anchor падає.