15%

Спести 15% на всички хостинг услуги

Тествай уменията си и получи Отстъпка за всеки хостинг план

Използвайте код:

Skills
За начало
30.10.2024

SSL Грешки в сигурността: Пълно ръководство за диагностика и отстраняване на проблемите

SSL/TLS грешките са сред най-разрушителните проблеми, с които един уебсайт може да се сблъска. Едно единствено предупреждение за сертификат е достатъчно, за да разплаши посетителите — и с добра причина. Тези браузърни предупреждения сигнализират, че криптираната връзка между потребител и сървър не може да бъде проверена, което поставя чувствителните данни в риск. Независимо дали сте обикновен интернет потребител, който се натъква на разочароващо предупредително съобщение, или собственик на уебсайт, който наблюдава как скока на отскочване се увеличава, разбирането на SSL грешките в сигурността е от съществено значение.

Този всеобхватен справочник обхваща всеки основен тип SSL грешка, нейната коренна причина и точните стъпки, необходими за нейното отстраняване — както от гледна точка на потребителя, така и на администратора на сървъра.

Какво е SSL/TLS и защо е важно?

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

Когато нещо се обърка с този сертификат — той изтича, е неправилно конфигуриран или браузърът не може да го валидира — връзката е отмечена като небезопасна. Браузъри като Chrome, Firefox, Edge и Safari показват видни предупредителни страници, за да защитят потребителите от потенциални атаки „човек в средата” или измамни сайтове.

За собствениците на уебсайтове тези грешки не само наранявят доверието на потребителите — те вредят на SEO класирането, намаляват конверсиите и могат да сигнализират по-дълбоки проблеми с инфраструктурата, които изискват незабавно внимание.

Най-честите SSL грешки в сигурността обяснени

1. NET::ERR_CERT_COMMON_NAME_INVALID

Какво означава: Доменното име, посочено в Common Name (CN) или Subject Alternative Names (SANs) на SSL сертификата, не съответства на домена, който браузърът се опитва да достигне.

Честите причини:

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

2. SSL сертификат изтекъл (NET::ERR_CERT_DATE_INVALID)

Какво означава: Всеки SSL сертификат има период на валидност — обикновено 90 дни за Let’s Encrypt или до 1–2 години за търговски сертификати. След като този период изтече, браузърите незабавно отхвърлят връзката.

Честите причини:

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

3. Грешка със смесено съдържание

Какво означава: Страницата се обслужва чрез HTTPS, но някои вградени ресурси — изображения, JavaScript файлове, таблици със стилове, iframe-ове — все още се зареждат чрез обикновен HTTP. Браузърите блокират или предупреждават за тези небезопасни подресурси.

Честите причини:

  • Наследено съдържание с hardcoded http:// URL адреси
  • Уиджети или скриптове на трети страни, използващи HTTP крайни точки
  • Сайт, мигриран от HTTP към HTTPS без актуализиране на вътрешни връзки

4. NET::ERR_CERT_AUTHORITY_INVALID

Какво означава: Сертификатът е издаден от Орган за издаване на сертификати (CA), който браузърът не доверява. Това може да се случи със самоподписани сертификати или сертификати от частни/вътрешни CA.

Честите причини:

  • Самоподписан сертификат, използван в производствена среда
  • Непълна верига на сертификати (липсват междинни сертификати)
  • Сертификат от CA, който е бил недоверен от производителите на браузъри

5. SSL_ERROR_RX_RECORD_TOO_LONG / Несъответствие на протокола

Какво означава: Браузърът и сървърът не могат да се договорят за взаимна версия на SSL/TLS протокол или набор от шифри. Това често се случва, когато сървърът все още поддържа остарели протоколи като SSLv3 или TLS 1.0.

Честите причини:

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

6. Остарял браузър

Какво означава: По-старите браузъри може да не поддържат модерни TLS версии (TLS 1.2 или 1.3), по-нови набори от шифри или актуализирани формати на сертификати, което причинява валидни сертификати да изглеждат счупени.

Как да отстраните SSL грешки като потребител

Ако посещавате уебсайт и срещате SSL предупреждения, проблемът може да не е винаги на страната на сървъра. Ето стъпките, за да изключите проблемите на страната на клиента:

Стъп 1: Изчистете кеша и бисквитките на браузъра

Остарелите кеширани данни могат да причинят браузърът да се позовава на стар, невалиден отговор на сертификат.

Chrome:

  1. Натиснете Ctrl + Shift + Delete (Windows/Linux) или Cmd + Shift + Delete (Mac)
  2. Задайте диапазона на времето на Всичко
  3. Отметнете Кеширани изображения и файлове и Бисквитки и други данни на сайта
  4. Щракнете Изчистване на данни

Firefox:

  1. Отидете на Настройки → Поверителност и сигурност → Бисквитки и данни на сайта
  2. Щракнете Изчистване на данни

След изчистването затворете и отворете отново браузъра, след това отново посетете сайта.

Стъп 2: Проверете датата и часа на вашата система

Валидирането на SSL сертификат е чувствително към времето. Ако системният ви часовник е неправилен — дори с един ден — браузърът може да заключи, че валиден сертификат е изтекъл или все още не е активен.

Windows:

  1. Щракнете с десния бутон върху часовника в лентата на задачите → Регулиране на дата/час
  2. Активирайте Автоматично задаване на времето и Автоматично задаване на часовата зона

macOS:

  1. Отидете на Системни настройки → Общо → Дата и час
  2. Активирайте Автоматично задаване на дата и час

Linux:

sudo timedatectl set-ntp true
timedatectl status

Стъп 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:

Първо, проверете датата на изтичане на текущия сертификат:

sudo certbot certificates

За обновяване на всички сертификати, управлявани от Certbot:

sudo certbot renew

За принудително обновяване дори ако сертификатът не е близо до изтичане:

sudo certbot renew --force-renewal

След обновяване, преконфигурирайте уеб сървъра, за да приложите новия сертификат:

# For Nginx
sudo systemctl reload nginx

# For Apache
sudo systemctl reload apache2

Автоматизирайте обновяването с cron job:

sudo crontab -e

Добавете следния ред, за да проверявате за обновяване два пъти дневно (препоръчано от Let’s Encrypt):

0 0,12 * * * certbot renew --quiet --post-hook "systemctl reload nginx"

> Професионален съвет: Ако хостирате с AlexHost VPS хостинг, Certbot може да бъде инсталиран и конфигуриран директно на Linux VPS, което ви дава пълен контрол над управлението на сертификатите и автоматичните обновявания.

Отстраняване 2: Разрешаване на NET::ERR_CERT_COMMON_NAME_INVALID

Тази грешка изисква проверка, че сертификатът покрива точните домени, които сайтът използва.

Проверете какви домени покрива сертификатът:

sudo certbot certificates

Или инспектирайте сертификата директно:

openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -text | grep -A2 "Subject Alternative Name"

Ако сертификатът не покрива както example.com, така и www.example.com, преиздайте го с двата:

sudo certbot --nginx -d example.com -d www.example.com

Или с Apache:

sudo certbot --apache -d example.com -d www.example.com

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

server {
    listen 443 ssl;
    server_name example.com www.example.com;
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
}

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

Отстраняване 3: Отстраняване на грешки със смесено съдържание

Смесеното съдържание е един от най-честите проблеми след миграция на сайт от HTTP към HTTPS.

Стъп 1: Идентифицирайте смесено съдържание

Отворете Developer Tools на браузъра (F12) → раздел Console. Предупреждения за смесено съдържание се появяват като:

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

Стъп 2: Актуализирайте hardcoded HTTP връзки в базата данни (WordPress пример)

Използвайте инструмента WP-CLI или плъгин като “Better Search Replace”, за да актуализирате всички HTTP препратки:

wp search-replace 'http://example.com' 'https://example.com' --skip-columns=guid

Стъп 3: Добавете HTTPS upgrade заглавие в Nginx

add_header Content-Security-Policy "upgrade-insecure-requests;";

Или в Apache’s .htaccess:

Header always set Content-Security-Policy "upgrade-insecure-requests;"

Стъп 4: Принудете HTTPS пренасочвания

В Nginx:

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

В Apache .htaccess:

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

Отстраняване 4: Разрешаване на проблеми с верига на сертификати (ERR_CERT_AUTHORITY_INVALID)

Непълна верига на сертификати е честа причина за тази грешка, особено когато липсва междинния сертификат.

Проверете веригата с OpenSSL:

openssl s_client -connect yourdomain.com:443 -showcerts

Потърсете пълната верига: вашия домейн сертификат → междинен CA → коренен CA.

Отстраняване в Nginx — убедете се, че използвате fullchain.pem (не само cert.pem):

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

Отстраняване в Apache:

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

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

Отстраняване 5: Актуализирайте конфигурацията на TLS протокол

Деактивирайте остарелите протоколи и принудете TLS 1.2 и TLS 1.3 на сървъра.

Nginx — препоръчана TLS конфигурация:

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;

Apache — препоръчана TLS конфигурация:

SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
SSLHonorCipherOrder off
SSLSessionTickets off

Преконфигурирайте уеб сървъра след направата на промени.

Отстраняване 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 само с preload след като сте сигурни, че целият сайт работи на HTTPS. Това указание е много трудно да се отмени.

Типове SSL сертификати: Избор на правилния

Не всички SSL сертификати са еднакви. Избирането на правилния тип за вашия случай на употреба предотвратява много често срещани грешки от възникване в първото място.

Тип сертификатНай-добре заПокритие
Валидиране на домен (DV)Блогове, лични сайтовеЕдин домен или wildcard
Валидиране на организация (OV)Бизнес уебсайтовеЕдин домен или wildcard
Разширено валидиране (EV)Електронна търговия, банкингЕдин домен
Wildcard SSLСайтове с поддомени*.example.com
Мултидомен (SAN)Множество домениДо 100+ домени
Let’s Encrypt (безплатен DV)Всеки уебсайтЕдин домен или wildcard

За професионални уебсайтове и онлайн магазини, инвестирането в доверен, търговски издаден сертификат добавя допълнителен слой на надеждност. AlexHost предлага SSL сертификати за всички видове уебсайтове, от основни DV сертификати до разширени мултидомейн опции.

Проактивно управление на SSL: Предотвратяване на грешки преди да възникнат

Отстраняването на SSL грешки реактивно е скъпо. Ето как да останете напред:

1. Наблюдавайте изтичането на сертификата

Настройте инструменти за наблюдение, които ви предупреждават преди сертификатът да изтече:

  • UptimeRobot — безплатно SSL наблюдение с email/SMS пред
15%

Спести 15% на всички хостинг услуги

Тествай уменията си и получи Отстъпка за всеки хостинг план

Използвайте код:

Skills
За начало