Port 443 Not Open: почему порт 443 закрыт и как исправить
Port 443 Not Open означает, что HTTPS-порт 443 закрыт, заблокирован или недоступен извне. Из-за этого сайт может не открываться по HTTPS, показывать ошибку соединения, SSL-ошибку, таймаут или сообщение о недоступности сервера.
Чаще всего проблема связана с firewall, настройками хостинга, Nginx, Apache, SSL-сертификатом, Cloudflare, DNS или тем, что веб-сервер вообще не слушает порт 443.
Quick Fix
- Проверьте, слушает ли сервер порт 443:
sudo ss -tulpn | grep :443 - Проверьте статус веб-сервера:
sudo systemctl status nginxилиsudo systemctl status apache2 - Откройте порт 443 в firewall:
sudo ufw allow 443/tcp - Проверьте правила firewall:
sudo ufw status - Проверьте SSL-конфигурацию сайта.
- Проверьте, есть ли блок
listen 443 ssl;в Nginx или<VirtualHost *:443>в Apache. - Если сайт за Cloudflare, проверьте SSL/TLS mode и DNS-запись.
- После изменений перезапустите веб-сервер.
Что означает Port 443 Not Open
Port 443 Not Open означает, что сервер не принимает HTTPS-соединения на порту 443. Этот порт используется для защищённого доступа к сайтам через HTTPS.
Если порт 443 закрыт, браузер не может установить безопасное соединение с сайтом. В результате пользователь может увидеть ошибку вроде:
This site can’t be reachedConnection timed outERR_CONNECTION_TIMED_OUTERR_CONNECTION_REFUSEDSSL_ERROR_SYSCALLSecure connection failedCloudflare 522Cloudflare 525Cloudflare 526
Важно понимать: закрытый порт 443 — это не всегда проблема SSL-сертификата. Иногда сертификат полностью рабочий, но сервер, firewall или хостинг не пропускает HTTPS-трафик.
Почему порт 443 может быть закрыт
1. Веб-сервер не слушает порт 443
Самая частая причина — Nginx или Apache настроен только на порт 80, но не настроен на HTTPS.
Например, в Nginx есть только:
listen 80;
Но нет:
listen 443 ssl;
В этом случае сайт может открываться по HTTP, но не будет открываться по HTTPS.
2. Firewall блокирует порт 443
Даже если веб-сервер настроен правильно, firewall может блокировать входящие подключения.
Это может быть:
- UFW на Ubuntu/Debian;
- firewalld на CentOS/AlmaLinux/Rocky Linux;
- iptables;
- панель безопасности хостинга;
- облачный firewall у VPS-провайдера;
- security group в AWS, Google Cloud, Azure или DigitalOcean.
3. SSL-сертификат не установлен
Некоторые конфигурации Nginx или Apache не запускают HTTPS-блок, если SSL-сертификат отсутствует или путь к нему указан неправильно.
Частые проблемы:
- сертификат не выпущен;
- сертификат удалён;
- сертификат истёк;
- указан неправильный путь к
fullchain.pem; - указан неправильный путь к
privkey.pem; - сертификат выпущен для другого домена.
4. Apache или Nginx не запущен
Если веб-сервер остановлен, порт 443 не будет открыт. Это часто случается после ошибки в конфигурации, обновления сервера или перезапуска VPS.
Проверьте Nginx:
sudo systemctl status nginx
Проверьте Apache:
sudo systemctl status apache2
На CentOS/AlmaLinux/Rocky Linux Apache может называться httpd:
sudo systemctl status httpd
5. Конфликт между Apache и Nginx
Если на сервере одновременно установлены Apache и Nginx, один из них может занимать порт 443. Второй сервер не сможет запуститься или не сможет принять HTTPS-трафик.
Проверить, кто использует порт 443, можно так:
sudo lsof -i :443
Или:
sudo ss -tulpn | grep :443
6. Порт закрыт на стороне хостинга
На некоторых VPS и облачных серверах порты нужно открывать не только в Linux, но и в панели провайдера.
Например, порт 443 может быть закрыт в:
- Cloud firewall;
- Security Groups;
- Network Rules;
- VPS firewall;
- панели управления хостингом.
7. Ошибка DNS или Cloudflare
Иногда кажется, что порт 443 закрыт, хотя проблема в DNS или Cloudflare.
Например:
- домен указывает на неправильный IP;
- DNS-запись устарела;
- Cloudflare проксирует не тот сервер;
- SSL/TLS mode в Cloudflare выбран неправильно;
- на origin-сервере нет валидного SSL;
- сервер блокирует IP-адреса Cloudflare.
Как проверить, открыт ли порт 443
1. Проверьте порт на самом сервере
Подключитесь к серверу по SSH и выполните:
sudo ss -tulpn | grep :443
Если порт слушается, вы увидите примерно такой результат:
LISTEN 0 511 0.0.0.0:443 0.0.0.0:* users:(("nginx",pid=1234,fd=6))
Это значит, что Nginx слушает порт 443.
Если команда ничего не показывает, веб-сервер не слушает HTTPS-порт.
2. Проверьте порт через lsof
sudo lsof -i :443
Если порт открыт, вы увидите процесс, который его использует. Например:
nginx 1234 root 6u IPv4 TCP *:https (LISTEN)
3. Проверьте подключение локально
На сервере выполните:
curl -I https://localhost
Если HTTPS работает локально, сервер должен вернуть HTTP-заголовки.
Если локально работает, но снаружи сайт не открывается, проблема почти наверняка в firewall, провайдере, Cloudflare или DNS.
4. Проверьте внешний доступ
С другого компьютера можно проверить:
curl -I https://example.com
Или:
nc -vz example.com 443
Если порт открыт, результат будет похож на:
Connection to example.com 443 port [tcp/https] succeeded!
Если порт закрыт, вы увидите отказ или таймаут.
Как исправить Port 443 Not Open
1. Откройте порт 443 в UFW
На Ubuntu/Debian часто используется UFW. Проверьте его статус:
sudo ufw status
Если порт 443 не разрешён, откройте его:
sudo ufw allow 443/tcp
Также лучше открыть HTTP:
sudo ufw allow 80/tcp
Если используется профиль Apache:
sudo ufw allow 'Apache Full'
Если используется профиль Nginx:
sudo ufw allow 'Nginx Full'
После этого снова проверьте:
sudo ufw status
2. Откройте порт 443 в firewalld
На CentOS, AlmaLinux, Rocky Linux и Fedora часто используется firewalld.
Откройте HTTPS:
sudo firewall-cmd --permanent --add-service=https
И HTTP:
sudo firewall-cmd --permanent --add-service=http
Перезагрузите правила:
sudo firewall-cmd --reload
Проверьте:
sudo firewall-cmd --list-all
3. Настройте Nginx для HTTPS
В Nginx должен быть блок с портом 443 и SSL-сертификатом.
Пример:
server {
listen 443 ssl http2;
server_name example.com www.example.com;
root /var/www/example.com;
index index.php index.html;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location / {
try_files $uri $uri/ /index.php?$args;
}
}
Также нужен редирект с HTTP на HTTPS:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$host$request_uri;
}
После изменений проверьте конфигурацию:
sudo nginx -t
Если тест успешный, примените изменения:
sudo systemctl reload nginx
4. Настройте Apache для HTTPS
В Apache должен быть VirtualHost для порта 443:
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
<Directory /var/www/example.com/public_html>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Включите SSL-модуль:
sudo a2enmod ssl
Проверьте конфигурацию:
sudo apachectl configtest
Если всё хорошо:
sudo systemctl reload apache2
5. Проверьте файл ports.conf в Apache
На Ubuntu/Debian Apache слушает порты через файл:
/etc/apache2/ports.conf
Откройте его:
sudo nano /etc/apache2/ports.conf
Проверьте, есть ли строка:
Listen 443
Если её нет, добавьте:
Listen 443
Затем проверьте конфигурацию и перезапустите Apache.
6. Выпустите SSL-сертификат Let’s Encrypt
Если HTTPS-блок есть, но сертификата нет, выпустите сертификат.
Для Nginx:
sudo certbot --nginx -d example.com -d www.example.com
Для Apache:
sudo certbot --apache -d example.com -d www.example.com
После выпуска сертификата проверьте:
sudo nginx -t
Или для Apache:
sudo apachectl configtest
7. Проверьте, не занят ли порт другим сервисом
Если Nginx или Apache не может запустить HTTPS, проверьте порт:
sudo lsof -i :443
Если порт занимает другой процесс, решите, какой веб-сервер должен работать.
Например, если порт занимает Nginx, а вы хотите использовать Apache:
sudo systemctl stop nginx
sudo systemctl disable nginx
sudo systemctl restart apache2
Если наоборот нужен Nginx:
sudo systemctl stop apache2
sudo systemctl disable apache2
sudo systemctl restart nginx
8. Откройте порт 443 в панели VPS-провайдера
Если на сервере порт открыт, но снаружи он всё равно недоступен, проверьте firewall в панели провайдера.
Ищите разделы:
- Firewall;
- Network;
- Security Groups;
- Cloud Firewall;
- Inbound Rules;
- Access Rules.
Нужно разрешить входящий TCP-трафик:
Port: 443
Protocol: TCP
Source: 0.0.0.0/0
Для IPv6 также можно разрешить:
Source: ::/0
9. Проверьте DNS-записи
Если домен указывает не на тот сервер, вы можете открывать порт 443 на одном VPS, а запросы будут уходить на другой IP.
Проверьте A-запись:
dig example.com A
Проверьте AAAA-запись:
dig example.com AAAA
Если IPv6-запись AAAA указывает на сервер, где HTTPS не настроен, сайт может не открываться у части пользователей. В таком случае настройте HTTPS для IPv6 или временно удалите неправильную AAAA-запись.
10. Проверьте Cloudflare
Если сайт подключён через Cloudflare, проверьте несколько вещей.
В DNS-записи домена должен быть правильный IP сервера. Если включено оранжевое облако, пользователь подключается к Cloudflare, а Cloudflare уже подключается к вашему серверу.
Проверьте в Cloudflare:
- DNS — A-запись должна указывать на правильный IP.
- SSL/TLS — лучше использовать режим Full или Full (strict).
- Origin Server — на сервере должен быть SSL-сертификат.
- Firewall — сервер не должен блокировать IP Cloudflare.
Если на origin-сервере порт 443 закрыт, Cloudflare может показывать ошибки 522, 525 или 526.
Advanced Troubleshooting
Порт 443 открыт локально, но закрыт снаружи
Если команда на сервере показывает, что порт слушается:
sudo ss -tulpn | grep :443
Но внешний тест показывает, что порт закрыт, причина обычно одна из этих:
- UFW/firewalld блокирует входящие соединения;
- порт закрыт в панели VPS;
- домен указывает на другой IP;
- Cloudflare направляет трафик не туда;
- провайдер блокирует порт;
- сервер слушает только
127.0.0.1:443, а не внешний интерфейс.
Проверьте, на каком адресе слушает порт:
sudo ss -tulpn | grep :443
Нужно, чтобы было что-то вроде:
0.0.0.0:443
[::]:443
Если сервер слушает только:
127.0.0.1:443
то снаружи подключиться не получится.
Порт 443 открыт, но HTTPS всё равно не работает
Если порт открыт, но браузер показывает SSL-ошибку, проблема уже не в доступности порта, а в сертификате или HTTPS-конфигурации.
Проверьте:
- выдан ли сертификат именно для этого домена;
- не истёк ли сертификат;
- правильно ли указан
fullchain.pem; - правильно ли указан
privkey.pem; - совпадает ли домен с
server_name; - нет ли конфликта между несколькими VirtualHost/server blocks.
Port 443 Not Open после перезагрузки сервера
Если после reboot порт 443 закрывается, проверьте автозапуск веб-сервера:
sudo systemctl enable nginx
Или для Apache:
sudo systemctl enable apache2
Также проверьте, не падает ли веб-сервер из-за ошибки конфигурации:
sudo nginx -t
Или:
sudo apachectl configtest
Port 443 Not Open на WordPress-сайте
Если WordPress открывается по HTTP, но не открывается по HTTPS, проверьте:
- установлен ли SSL-сертификат;
- есть ли HTTPS-конфигурация в Nginx или Apache;
- открыт ли порт 443;
- правильно ли указан домен в настройках WordPress;
- нет ли неправильного редиректа в
.htaccess; - нет ли конфликта с Cloudflare Flexible SSL.
В WordPress также проверьте:
Настройки → Общие → Адрес WordPress (URL)
Настройки → Общие → Адрес сайта (URL)
Оба адреса должны начинаться с https://, если SSL уже настроен.
Частые ошибки и что они означают
ERR_CONNECTION_REFUSED
Сервер доступен, но не принимает соединение на порту 443. Часто причина — веб-сервер не слушает HTTPS или порт заблокирован.
ERR_CONNECTION_TIMED_OUT
Запрос к порту 443 не получает ответа. Обычно это firewall, закрытый порт у провайдера, неправильный IP или блокировка сети.
SSL_ERROR_SYSCALL
Соединение обрывается во время SSL-handshake. Причина может быть в неправильной SSL-конфигурации, reverse proxy или Cloudflare.
Cloudflare 522
Cloudflare не может подключиться к origin-серверу. Возможные причины: порт 443 закрыт, сервер не отвечает, firewall блокирует Cloudflare.
Cloudflare 525
Cloudflare не смог выполнить SSL-handshake с origin-сервером. Проверьте SSL-сертификат и HTTPS-конфигурацию на сервере.
Cloudflare 526
Cloudflare считает SSL-сертификат на origin-сервере недействительным. Это особенно важно при режиме Full (strict).
Как предотвратить проблему Port 443 Not Open
- Всегда открывайте порты 80 и 443 после установки сервера.
- Проверяйте firewall на сервере и в панели VPS.
- После настройки SSL проверяйте, слушает ли сервер порт 443.
- Не держите одновременно Apache и Nginx без понятной схемы.
- Следите за сроком действия SSL-сертификата.
- Проверяйте DNS после миграции сайта.
- Не включайте Cloudflare до проверки HTTPS на origin-сервере.
- После каждого изменения выполняйте
nginx -tилиapachectl configtest.
Когда обращаться в поддержку хостинга
Обратитесь в поддержку, если:
- у вас нет SSH-доступа;
- порт 443 открыт в Linux, но закрыт снаружи;
- порт блокируется на уровне VPS-провайдера;
- вы не можете найти cloud firewall;
- SSL выдаётся через панель хостинга;
- сайт работает за CDN, но origin-сервер недоступен;
- после миграции домен указывает на правильный IP, но HTTPS не работает.
Перед обращением в поддержку подготовьте домен, IP сервера, скрин ошибки и результат команд ss -tulpn | grep :443, ufw status и статуса веб-сервера.
FAQ
Что значит Port 443 Not Open?
Это значит, что HTTPS-порт 443 закрыт или недоступен. Браузер не может установить защищённое соединение с сайтом по HTTPS.
Как проверить, открыт ли порт 443?
На сервере используйте:
sudo ss -tulpn | grep :443
Снаружи можно проверить:
nc -vz example.com 443
Почему порт 443 закрыт, если SSL установлен?
SSL-сертификат сам по себе не открывает порт. Нужно, чтобы Nginx или Apache слушал порт 443, а firewall пропускал входящие HTTPS-подключения.
Как открыть порт 443 на Ubuntu?
Если используется UFW, выполните:
sudo ufw allow 443/tcp
sudo ufw reload
Также проверьте, что веб-сервер настроен на HTTPS.
Почему Cloudflare показывает ошибку, если порт 443 закрыт?
Cloudflare должен подключаться к вашему origin-серверу. Если порт 443 закрыт или SSL на сервере настроен неправильно, Cloudflare может показать 522, 525 или 526.
Вывод
Port 443 Not Open обычно означает одну из трёх проблем: веб-сервер не слушает HTTPS, firewall блокирует соединение или домен/CDN направляет трафик не туда. Начните с проверки ss -tulpn | grep :443, затем проверьте firewall, SSL-конфигурацию, DNS и Cloudflare.
Не исправляйте всё наугад. Сначала определите, где именно закрыт порт: на сервере, в firewall, у провайдера, в DNS или на стороне CDN. Так вы быстрее восстановите HTTPS и избежите лишнего простоя сайта.
