Security

SSL Checker

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

Hostname host or host:port (default 443)
cloudflare.com:443
TLSv1.3 expires in 72d
Verdict
  • Certificate is valid for this host and not expired.
Subject?
cloudflare.com
Issuer?
WE1 — Google Trust Services
Valid from
2026-07-08T21:47:39Z
Valid to?
2026-10-06T22:47:27Z
Signature algorithm?
ecdsa-with-SHA256
Public key?
EC 256 bits
Negotiated cipher?
TLS_AES_256_GCM_SHA384
Chain depth?
3
Hostname matches?
yes
Self-signed?
no
Subject Alternative Names?
  • cloudflare.com
  • ns.cloudflare.com
  • *.ns.cloudflare.com
  • *.secondary.cloudflare.com
  • secondary.cloudflare.com
Raw certificate (PEM)
-----BEGIN CERTIFICATE----- MIID0TCCA3igAwIBAgIQW7DwqoTI/s4OctgFunpdKzAKBggqhkjOPQQDAjA7MQsw CQYDVQQGEwJVUzEeMBwGA1UEChMVR29vZ2xlIFRydXN0IFNlcnZpY2VzMQwwCgYD VQQDEwNXRTEwHhcNMjYwNzA4MjE0NzM5WhcNMjYxMDA2MjI0NzI3WjAZMRcwFQYD VQQDEw5jbG91ZGZsYXJlLmNvbTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABNDs LiTwXD8kBejjJ84lHC2pA/dk9KmXCEvGw3h8Q+7k8VsHg+RTC59ZKvGB64Sxa/VY QKmErVJnaVKGW/ZmtpyjggJ+MIICejAOBgNVHQ8BAf8EBAMCB4AwEwYDVR0lBAww CgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUacXlKENrJNyJKrq/ tuW/cwIbht8wHwYDVR0jBBgwFoAUkHeSNWfE/6jMqeZ72YB5e8yT+TgwNQYIKwYB BQUHAQEEKTAnMCUGCCsGAQUFBzAChhlodHRwOi8vaS5wa2kuZ29vZy93ZTEuY3J0 MHcGA1UdEQRwMG6CDmNsb3VkZmxhcmUuY29tghFucy5jbG91ZGZsYXJlLmNvbYIT Ki5ucy5jbG91ZGZsYXJlLmNvbYIaKi5zZWNvbmRhcnkuY2xvdWRmbGFyZS5jb22C GHNlY29uZGFyeS5jbG91ZGZsYXJlLmNvbTATBgNVHSAEDDAKMAgGBmeBDAECATA2 BgNVHR8ELzAtMCugKaAnhiVodHRwOi8vYy5wa2kuZ29vZy93ZTEvZ3hJQnY2QjJo WXcuY3JsMIIBBgYKKwYBBAHWeQIEAgSB9wSB9ADyAHcA2AlVO5RPev/IFhlvlE+F q7D4/F6HVSYPFdEucrtFSxQAAAGfQ+pcGAAABAMASDBGAiEAmWXvLSMhlxmi1S+K 4kRMCdLEX+wGBAbdVV32dnt5a6sCIQD6pKaA18jr06ffv31tpjCDisobc6KEE61J wvVxvqwLegB3AJROQ4f67MHvgfMZJCaoGGUBx9NfOAIBP3JnfVU3LhnYAAABn0Pq W+oAAAQDAEgwRgIhALnZFhafFrXB4xJaLIy3mygxmpU7RRsZ6OFFtczrFM75AiEA +8DfUCZ9uOzHPcJ/wEeuBbTnezletxwXYeeR1puJ1PowCgYIKoZIzj0EAwIDRwAw RAIgemJR8aLVJo+E0p0FEfr5tr1cqlieMgJz99Z4kQ2qV/0CIDkILcHmaYKjAb/E 1SRXgGzSIHgL8yrIPq70NQh9H4iP -----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 падає.