Вступ
Іноді SSL «встановлено» лише формально. Панель хостингу показує активний сертифікат, але браузер все одно видає помилку. Причина може бути не в самому сертифікаті, а в ланцюжку перенаправлень, старих посиланнях усередині CMS, підключенні зображень через HTTP або конфлікті між проксі та сервером.
Симптоми
Симптоми зазвичай мінливі: головна сторінка відкривається нормально, а внутрішня сторінка показує попередження; з www працює, без www — ні; після входу в адмінку починається цикл перенаправлень; форма не надсилається через змішаний контент; рекламне посилання веде на HTTP-версію.
Що перевіряється
- на який домен видано сертифікат і чи міститься в ньому www/без www
- чи сервер надає повний ланцюжок сертифіката
- Чи існують різні правила перенаправлення в nginx/apache/.htaccess/CMS?
- яка адреса вказана як основна URL-адреса сайту
- чи є зображення, скрипти, форми та iframe через HTTP
- Чи не виникає конфлікту між CDN або reverse proxy та HTTPS на origin?
- чи відбувається поновлення сертифіката автоматично
Процес виправлення
Перевірка починається з зовнішнього запиту до кількох варіантів адреси: HTTP, HTTPS, www та без www. Потім формується ланцюжок перенаправлень. Якщо вона перескакує між схемами або доменами, перенаправлення приводяться до одного правила. Після цього очищаються внутрішні посилання CMS, перевіряється змішаний контент і тестуються форми. Важливо не додавати ще одне правило поверх старих, а усунути джерела, що конфліктують.
Нормальний результат
Після виправлення всі варіанти адреси мають вести до одного HTTPS-домену. Сертифікат має збігатися з доменом, браузер не повинен відображати попередження, а форми та зовнішні ресурси мають працювати без блокувань з міркувань безпеки.
Висновок
SSL — це не лише кнопка «видати сертифікат». Для користувача важливий кінцевий ланцюжок: яку адресу він відкрив, куди його перенаправили, що насправді завантажилося на сторінці та чи довіряє цьому браузер.