Довідник помилок / Cloudflare Error 526: Invalid SSL certificate
Помилка Cloudflare 526: Invalid SSL certificate
Error 526 показує сама Cloudflare, а не ваш сайт. Помилка зʼявляється, коли в Cloudflare увімкнено режим шифрування Full (strict), а сертифікат, який віддає ваш origin-сервер, не проходить перевірку, тому Cloudflare відмовляється передавати запит далі. Відвідувачі бачать сторінку Cloudflare з написом Invalid SSL certificate, і сайт не відкривається ні в кого. Сертифікат, який браузери бачать на краю мережі Cloudflare, при цьому справний, тому у звичайній SSL-перевірці домену все виглядає добре; зламана ланка на крок далі, між Cloudflare і вашим сервером.
Перевірте свій сайт
Через що виникає
Cloudflare перевіряє в сертифікаті origin чотири речі, і 526 означає, що одна з них не пройшла. Найчастіше сертифікат просто протермінований, зазвичай тому, що тихо перестало працювати автоматичне продовження. Далі за поширеністю йде невідповідність імені, коли origin віддає сертифікат, який не покриває запитаний домен (типово для стандартного сертифіката шаред-хостингу); за ними йдуть самопідписані сертифікати або видані центром, якому Cloudflare не довіряє, і неповний ланцюжок, коли сервер віддає лише кінцевий сертифікат без проміжного. Часто на сервері взагалі нічого не змінювалося, а справжнім тригером стало перемикання режиму шифрування на Full (strict), яке перетворило давню проблему origin на жорстку помилку.
Як виправити
- Спрямуйте перевірку на origin, а не на проксійований домен: візьміть піддомен у режимі DNS only (сіра хмарка), наприклад origin.example.com, або імʼя сервера, яке дав хостинг, і запустіть SSL-перевірку на цій сторінці. Дивіться в результаті пʼять рядків: дати дії, скільки днів лишилося, видавця, перелік імен, які покриває сертифікат, і ланцюжок, що його віддав сервер. Саме це Cloudflare і перевіряє в режимі Full (strict), а проксійований домен показує лише сертифікат самої Cloudflare, який завжди справний і нічого не доводить.
- Якщо днів лишилося менше нуля або сертифікат позначено як протермінований, це і є причина: продовжте його на origin і полагодьте те, що зламало автопродовження, найчастіше це cron-завдання, яке більше не запускається, або ACME-перевірка, яка тепер падає, бо Cloudflare і на її запит віддає 526.
- Якщо видавець збігається з іменем самого сервера або з subject, сертифікат самопідписаний, і Full (strict) відхилятиме його завжди; якщо видавець це справжній центр сертифікації, але перевірка все одно позначає сертифікат як недовірений і показує в ланцюжку лише один сертифікат, бракує проміжного: доставте CA bundle поруч із сертифікатом і перезапустіть вебсервер.
- Якщо з датами і видавцем усе гаразд, подивіться перелік імен: там мають бути ваш домен і його www-версія. Стандартний сертифікат хостингу, виданий на імʼя сервера на кшталт server42.hostingcompany.com, ваш домен не покриває, і самої цієї невідповідності досить для 526. Випустіть сертифікат на свій реальний домен і привʼяжіть його до цього сайту в панелі керування хостингом.
- Поставте сертифікат, який пройде всі чотири перевірки: безкоштовний Let's Encrypt чи ZeroSSL із панелі керування хостингом або сертифікат Cloudflare Origin CA (безкоштовний, дійсний до 15 років, приймається в Full (strict), але лише для трафіку від Cloudflare). Потім повторюйте перевірку origin, поки дати, видавець, імена і ланцюжок не стануть чистими.
- Перемикайте режим шифрування з Full (strict) на Full лише як свідоме послаблення: Full так само шифрує ділянку між Cloudflare і origin, але зовсім не перевіряє сертифікат, тож приймає і протермінований, і самопідписаний, і підроблений, а перехоплення на цій ділянці залишиться непоміченим. Як тимчасовий захід це прийнятно, наприклад щоб пропустити продовження сертифіката, і варто повернутися на Full (strict), щойно перевірка стане чистою.