15%

Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код:

Skills
Начать
30.10.2024

SSL Security Errors: The Complete Guide to Diagnosing and Fixing Them

Ошибки SSL/TLS — одни из самых разрушительных проблем, с которыми может столкнуться веб-сайт. Одного предупреждения о сертификате достаточно, чтобы посетители покинули сайт — и на то есть веские причины. Эти предупреждения браузера сигнализируют о том, что зашифрованное соединение между пользователем и сервером не может быть проверено, что ставит под угрозу конфиденциальные данные. Независимо от того, являетесь ли вы обычным интернет-пользователем, столкнувшимся с раздражающей страницей предупреждения, или владельцем веб-сайта, наблюдающим рост показателя отказов, понимание ошибок безопасности SSL необходимо.

Это подробное руководство охватывает все основные типы ошибок SSL, их первопричины и точные шаги, необходимые для их исправления — с точки зрения как пользователя, так и администратора сервера.

Что такое SSL/TLS и почему это важно?

SSL (Secure Sockets Layer) и его современный преемник TLS (Transport Layer Security) — это криптографические протоколы, которые шифруют данные, передаваемые между веб-браузером и веб-сервером. Когда сайт использует HTTPS, это означает, что действует SSL/TLS сертификат, который аутентифицирует личность сервера и защищает данные при передаче.

Когда что-то идет не так с этим сертификатом — он истекает, неправильно настроен или браузер не может его проверить — соединение помечается как небезопасное. Браузеры, такие как Chrome, Firefox, Edge и Safari, отображают заметные страницы предупреждения для защиты пользователей от потенциальных атак типа «человек посередине» или мошеннических сайтов.

Для владельцев веб-сайтов эти ошибки не только подрывают доверие пользователей — они наносят ущерб рейтингам SEO, снижают конверсии и могут сигнализировать о более глубоких проблемах инфраструктуры, требующих немедленного внимания.

Наиболее распространенные ошибки безопасности SSL объяснены

1. Несоответствие имени домена (Domain Name Mismatch)

Что это означает: Имя домена, указанное в Common Name (CN) или Subject Alternative Names (SANs) SSL сертификата, не совпадает с доменом, к которому браузер пытается получить доступ.

Распространенные причины:

  • Сертификат выдан для www.example.com, но сайт доступен через example.com (или наоборот)
  • Подстановочный сертификат (*.example.com), который не охватывает корневой домен
  • Сертификат от другого домена случайно применен к серверу
  • Неправильно настроенные виртуальные хосты на Apache или Nginx

2. Истекший SSL сертификат (SSL Certificate Expired)

Что это означает: Каждый SSL сертификат имеет период действия — обычно 90 дней для Let’s Encrypt или до 1–2 лет для коммерческих сертификатов. После истечения этого периода браузеры немедленно отклоняют соединение.

Распространенные причины:

  • Автоматическое обновление не удалось (ошибка cron, проблема с DNS, порт 80 заблокирован)
  • Ручное обновление было забыто
  • Сертификат был обновлен, но не перезагружен веб-сервером

3. Ошибка смешанного контента (Mixed Content Error)

Что это означает: Страница подается по HTTPS, но некоторые встроенные ресурсы — изображения, файлы JavaScript, таблицы стилей, iframe — по-прежнему загружаются по простому HTTP. Браузеры блокируют или предупреждают об этих небезопасных подресурсах.

Распространенные причины:

  • Устаревший контент с жестко закодированными http:// URL
  • Сторонние виджеты или скрипты, использующие HTTP конечные точки
  • Сайт, перенесенный с HTTP на HTTPS без обновления внутренних ссылок

4. Недоверенный сертификат (Untrusted Certificate)

Что это означает: Сертификат был выдан Центром сертификации (CA), которому браузер не доверяет. Это может произойти с самоподписанными сертификатами или сертификатами от частных/внутренних ЦС.

Распространенные причины:

  • Самоподписанный сертификат используется в производственной среде
  • Неполная цепь сертификатов (отсутствуют промежуточные сертификаты)
  • Сертификат от ЦС, которому браузеры больше не доверяют

5. Ошибка протокола (Protocol Error) / Несоответствие протокола

Что это означает: Браузер и сервер не могут согласовать взаимный версию протокола SSL/TLS или набор шифров. Это часто происходит, когда сервер по-прежнему поддерживает устаревшие протоколы, такие как SSLv3 или TLS 1.0.

Распространенные причины:

  • Сервер настроен на использование устаревших версий TLS
  • Брандмауэр или балансировщик нагрузки перехватывает HTTPS трафик на неправильном порту
  • HTTP трафик отправляется на HTTPS порт

6. Устаревший браузер (Outdated Browser)

Что это означает: Старые браузеры могут не поддерживать современные версии TLS (TLS 1.2 или 1.3), новые наборы шифров или обновленные форматы сертификатов, что приводит к тому, что действительные сертификаты выглядят неработающими.

Как исправить ошибки SSL как пользователь

Если вы посещаете веб-сайт и сталкиваетесь с предупреждениями SSL, проблема может быть не всегда на стороне сервера. Вот шаги для исключения проблем на стороне клиента:

Устаревшие кэшированные данные могут привести к тому, что браузер будет ссылаться на старый, недействительный ответ сертификата.

Chrome:

  1. Нажмите Ctrl+Shift+Delete (Windows/Linux) или Command+Shift+Delete (Mac)
  2. Установите диапазон времени на Все время
  3. Отметьте Кэшированные изображения и файлы и Файлы cookie и другие данные сайта
  4. Нажмите Удалить данные

Firefox:

  1. Перейдите в Параметры → Приватность и безопасность → Файлы cookie и данные сайтов
  2. Нажмите Удалить данные

После очистки закройте и снова откройте браузер, затем повторно посетите сайт.

Шаг 2: Проверьте дату и время системы

Проверка SSL сертификата зависит от времени. Если системные часы неправильны — даже на день — браузер может заключить, что действительный сертификат истек или еще не активен.

Windows:

  1. Щелкните правой кнопкой мыши на часах на панели задач → Настроить дату/время
  2. Включите Установить время автоматически и Установить часовой пояс автоматически

macOS:

  1. Перейдите в Параметры системы → Основное → Дата и время
  2. Включите Установить дату и время автоматически

Linux:

timedatectl set-ntp true

Шаг 3: Обновите браузер

Современные SSL/TLS сертификаты используют алгоритмы и расширения, которые старые версии браузеров не поддерживают. Всегда используйте последнюю стабильную версию браузера.

  • Chrome: Меню → Справка → О Google Chrome → Обновить
  • Firefox: Меню → Справка → О Firefox → Обновить
  • Edge: Меню → Справка и отзывы → О Microsoft Edge → Обновить

Шаг 4: Временно отключите VPN или прокси

VPN и прокси могут перехватывать HTTPS соединения и подставлять свои собственные сертификаты, вызывая предупреждения браузера. Временно отключите их, чтобы определить, являются ли они источником ошибки.

Шаг 5: Проверьте сканирование HTTPS антивируса

Некоторые антивирусные программы выполняют проверку SSL путем внедрения собственных сертификатов. Если корневой сертификат антивируса не доверяется браузером, это вызывает ошибки SSL. Проверьте параметры антивируса и отключите сканирование HTTPS при необходимости.

Как исправить ошибки SSL как владелец веб-сайта

Если ваш собственный веб-сайт выдает ошибки SSL, следующие шаги помогут вам систематически диагностировать и решить их.

Исправление 1: Обновите истекший SSL сертификат

Использование Let’s Encrypt с Certbot:

Сначала проверьте дату истечения текущего сертификата:

openssl x509 -enddate -noout -in /etc/letsencrypt/live/example.com/cert.pem

Чтобы обновить все сертификаты, управляемые Certbot:

certbot renew

Чтобы принудительно обновить даже если сертификат еще не близок к истечению:

certbot renew –force-renewal

После обновления перезагрузите веб-сервер для применения нового сертификата:

sudo systemctl reload nginx

Автоматизируйте обновление с помощью cron задачи:

crontab -e

Добавьте следующую строку для проверки обновления дважды в день (рекомендуется Let’s Encrypt):

0 */12 * * * certbot renew –quiet && systemctl reload nginx

> Совет профессионала: Если вы размещаетесь на AlexHost VPS Hosting, Certbot можно установить и настроить непосредственно на вашем Linux VPS, что дает вам полный контроль над управлением сертификатами и автоматическими обновлениями.

Исправление 2: Решите проблему несоответствия имени домена

Эта ошибка требует проверки того, что ваш сертификат охватывает точные домены, которые использует ваш сайт.

Проверьте, какие домены охватывает ваш сертификат:

openssl x509 -text -noout -in /etc/letsencrypt/live/example.com/cert.pem | grep -A1 “Subject Alternative Name”

Или проверьте сертификат напрямую:

openssl s_client -connect example.com:443 -servername example.com

Если сертификат не охватывает оба www.example.com и example.com, переиздайте его с обоими:

certbot certonly –nginx -d example.com -d www.example.com

Или с Apache:

certbot certonly –apache -d example.com -d www.example.com

Проверьте конфигурацию виртуального хоста (Nginx):

cat /etc/nginx/sites-available/example.com

Убедитесь, что server_name совпадает с доменами в сертификате точно.

Исправление 3: Исправьте ошибки смешанного контента

Смешанный контент — одна из наиболее распространенных проблем после миграции сайта с HTTP на HTTPS.

Шаг 1: Определите смешанный контент

Откройте Инструменты разработчика браузера (F12) → вкладка Консоль. Предупреждения о смешанном контенте появляются как:

Mixed Content: The page at ‘https://example.com’ was loaded over HTTPS, but requested an insecure resource ‘http://example.com/image.jpg’.

Шаг 2: Обновите жестко закодированные HTTP ссылки в базе данных (пример WordPress)

Используйте инструмент WP-CLI или плагин вроде “Better Search Replace” для обновления всех HTTP ссылок:

wp search-replace ‘http://example.com’ ‘https://example.com’

Шаг 3: Добавьте заголовок обновления HTTPS в Nginx

add_header Content-Security-Policy “upgrade-insecure-requests”;

Или в Apache .htaccess:

Header always set Content-Security-Policy “upgrade-insecure-requests”

Шаг 4: Принудительно перенаправьте на HTTPS

В Nginx:

server { listen 80; server_name example.com; return 301 https://$server_name$request_uri; }

В Apache .htaccess:

RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Исправление 4: Решите проблемы цепи сертификатов (Untrusted Certificate)

Неполная цепь сертификатов — частая причина этой ошибки, особенно когда отсутствует промежуточный сертификат.

Проверьте цепь с помощью OpenSSL:

openssl s_client -connect example.com:443 -showcerts

Ищите полную цепь: ваш сертификат домена → промежуточный ЦС → корневой ЦС.

Исправление в Nginx — убедитесь, что вы используете ssl_certificate_chain (не только ssl_certificate):

ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

Исправление в Apache:

SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem

Используйте SSL Labs Server Test для проверки того, что полная цепь сертификатов правильно подается.

Исправление 5: Обновите конфигурацию протокола TLS

Отключите устаревшие протоколы и принудительно используйте TLS 1.2 и TLS 1.3 на сервере.

Nginx — рекомендуемая конфигурация TLS:

ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on;

Apache — рекомендуемая конфигурация TLS:

SSLProtocol TLSv1.2 TLSv1.3 SSLCipherSuite HIGH:!aNULL:!MD5 SSLHonorCipherOrder on

Перезагрузите веб-сервер после внесения изменений.

Исправление 6: Включите HTTP Strict Transport Security (HSTS)

HSTS инструктирует браузеры всегда использовать HTTPS для вашего домена, предотвращая атаки понижения протокола и проблемы со смешанным контентом.

Nginx:

add_header Strict-Transport-Security “max-age=31536000; includeSubDomains; preload” always;

Apache:

Header always set Strict-Transport-Security “max-age=31536000; includeSubDomains; preload”

> Предупреждение: Включайте HSTS с includeSubDomains только после того, как вы уверены, что весь ваш сайт работает на HTTPS. Эта директива очень сложно отменить.

Типы SSL сертификатов: выбор правильного

Не все SSL сертификаты одинаковы. Выбор правильного типа для вашего случая предотвращает возникновение многих распространенных ошибок.

Тип сертификатаЛучше всего дляОхват
Domain Validation (DV)Блоги, личные сайтыОдин домен или подстановочный
Organization Validation (OV)Бизнес-сайтыОдин домен или подстановочный
Extended Validation (EV)Электронная коммерция, банкингОдин домен
Wildcard SSLСайты с поддоменами*.example.com
Multi-Domain (SAN)Несколько доменовДо 100+ доменов
Let’s Encrypt (Free DV)Любой веб-сайтОдин домен или подстановочный

Для профессиональных веб-сайтов и интернет-магазинов инвестирование в доверенный коммерчески выданный сертификат добавляет д

15%

Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код:

Skills
Начать