Security

SSL Checker

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

Hostname host or host:port (default 443)
badssl.com:443
TLSv1.2 expires in 29d
Verdict
  • Certificate is valid for this host and not expired.
Subject?
*.badssl.com
Issuer?
R13 — Let's Encrypt
Valid from
2026-05-26T20:02:50Z
Valid to?
2026-08-24T20:02:49Z
Signature algorithm?
RSA-SHA256
Public key?
RSA 2048 bits
Negotiated cipher?
ECDHE-RSA-AES128-GCM-SHA256
Chain depth?
2
Hostname matches?
yes
Self-signed?
no
Subject Alternative Names?
  • *.badssl.com
  • badssl.com
Raw certificate (PEM)
-----BEGIN CERTIFICATE----- MIIE/jCCA+agAwIBAgISBTPcKLMYoeERiY35MJr77TYzMA0GCSqGSIb3DQEBCwUA MDMxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQwwCgYDVQQD EwNSMTMwHhcNMjYwNTI2MjAwMjUwWhcNMjYwODI0MjAwMjQ5WjAXMRUwEwYDVQQD DAwqLmJhZHNzbC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC0 6KANZcLJSK/zv5hCw7U+8Q9+cPdhyiP5XSOZrctjsIu3s2M9abZ9zY3dhi9H9KXt +be2V93qjxAAGWkAbfGXT+6S/xRCuwtTmWOD/4PsX2Near6jBz0g6c3ttItPGHy2 l2FUy0Hl5epWK836wSw58p9jeskm8zCuek/LJ/nXGhfnXMvW6rvxMjW72AEofZpA rGzlCjb2b2EY5B6zL1CxB77Yu8pzP4gEbBH4Sp7iT6rVr2ZVipVEdwh0o2cg61MF /ofMDKjZ7wHx+l/vU6lJlzXYY98LtS4+hw5kBsoulqRGyeIJks7M1+mrdl0xSwtg xPiR1T/weGyuwJ0YE9G3AgMBAAGjggImMIICIjAOBgNVHQ8BAf8EBAMCBaAwEwYD VR0lBAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAdBgNVHQ4EFgQUZfXhFxQb 7MDrEQ6ois5LEsv4t2swHwYDVR0jBBgwFoAU56ufDywzoFPTXk94yLKEDjvWkjMw MwYIKwYBBQUHAQEEJzAlMCMGCCsGAQUFBzAChhdodHRwOi8vcjEzLmkubGVuY3Iu b3JnLzAjBgNVHREEHDAaggwqLmJhZHNzbC5jb22CCmJhZHNzbC5jb20wEwYDVR0g BAwwCjAIBgZngQwBAgEwLgYDVR0fBCcwJTAjoCGgH4YdaHR0cDovL3IxMy5jLmxl bmNyLm9yZy81Mi5jcmwwggEMBgorBgEEAdZ5AgQCBIH9BIH6APgAdgDYCVU7lE96 /8gWGW+UT4WrsPj8XodVJg8V0S5yu0VLFAAAAZ5mF468AAAEAwBHMEUCID7FfrBs 57qfYRHjk9PXh4H8gI+2878ExKWwXR2+pj7iAiEArHIWJ6KuWeub9BkKEcI64K87 DwKPjgby0zhTZjsOEa0AfgAai51rD/6/gbR5OcbSMQqG1tEC1PBG4hgsneNfXiYl 7wAAAZ5mF4+8AAgAAAUAFztGcAQDAEcwRQIgJqlkzRV9qZZ8pRgtKIr4XHOMZsQt QKthekK0LnFvSN0CIQDW3BRjOXRcjWLvhVRuhMknknygj5ok2kab4Hfrq6EHvzAN BgkqhkiG9w0BAQsFAAOCAQEANIsCNUpmK3HyXz6TcaXx/G1H0n8so0JXm2ZaWSa9 RJMK/H4NsAcsftAMYF2SqaK3X7nayHT7wpL1/O9D+YMHLzUoLawlZe2dqvKWsm6S vdV6cMTGmtQkz2EQjRy1u1trzt06YnUL83P4ATUYKh0VI6xT4WIhap0ZtJTaTNCi AV2mF2UlDkSVNwemNDIhPjxPOpsCfe1vybwHLfE800WdlL0eMA6jMdrG26BcsvZy TwvrjAg21ixi8rcgwj4d7/fVA3yE7/5S3c98ZNBimfeyEb1PMApMAYbOCQEICgyK ftka8gzQRX3Hn906O3dXZkaDdo067k82BnIos22TmiTg7w== -----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 падає.