Соединение с сервером Apache на порту 443 отклонено

Вопрос или проблема

Недавно настроил SSL на Apache 2.4/Ubuntu 20.04, размещенном в Oracle Cloud, и получаю отказ в подключении для https/port 443.

Внешнее устройство:

$ curl simpliassure.com:443
curl: (7) Не удалось подключиться к simpliassure.com порт 443: Соединение отказано

$ curl simpliassure.com
(обычное HTML содержимое загружается)

$ nmap -p 443 132.145.100.143
Хост активен (латентность 0.024с).
PORT    STATE  SERVICE
443/tcp закрыт https

ssh’d на сервер:

$ curl localhost
(обычное HTML содержимое загружается)

$ curl localhost:443
(обычное HTML содержимое загружается)

$ curl https://localhost
curl: (35) ошибка:1408F10B:SSL routines:ssl3_get_record:неправильный номер версии

$ apachectl configtest
Синтаксис в порядке

$ sudo apache2ctl -S
Конфигурация VirtualHost:
132.145.100.143:80     simpliassure.com (/etc/apache2/sites-enabled/default-ssl.conf:3)
132.145.100.143:443    simpliassure.com (/etc/apache2/sites-enabled/default-ssl.conf:14)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www/html"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex ssl-stapling: using_defaults
Mutex ssl-cache: using_defaults
Mutex default: dir="/var/run/apache2/" механизм=default 
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
Mutex ssl-stapling-refresh: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33
Group: name="www-data" id=33

$ ss -tupln
Netid  Состояние   Recv-Q  Send-Q    Локальный адрес:порт   Адрес:порт партнера 
udp    UNCONN  0       0               0.0.0.0:111         0.0.0.0:*            
udp    UNCONN  0       0         127.0.0.53%lo:53          0.0.0.0:*            
udp    UNCONN  0       0        10.0.0.29%ens3:68          0.0.0.0:*            
udp    UNCONN  0       0                  [::]:111            [::]:*            
tcp    LISTEN  0       4096            0.0.0.0:111         0.0.0.0:*            
tcp    LISTEN  0       4096      127.0.0.53%lo:53          0.0.0.0:*            
tcp    LISTEN  0       128             0.0.0.0:22          0.0.0.0:*            
tcp    LISTEN  0       4096               [::]:111            [::]:*            
tcp    LISTEN  0       511                   *:80                *:*            
tcp    LISTEN  0       128                [::]:22             [::]:*            
tcp    LISTEN  0       511                   *:443               *:* 

/etc/sites-available/default-ssl.conf является единственной символической ссылкой в /etc/sites-enabled/default-ssl.conf

/etc/sites-available/default-ssl.conf:

<IfModule mod_ssl.c>
    <VirtualHost 132.145.100.143:80>
        ServerAdmin webmaster@localhost
        ServerName simpliassure.com

        DocumentRoot /var/www/html

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

    </VirtualHost>

    <VirtualHost 132.145.100.143:443>
        ServerAdmin webmaster@localhost
        ServerName simpliassure.com

        DocumentRoot /var/www/html

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        SSLEngine on

        SSLCertificateFile /home/ubuntu/certificate_bundle/www.simpliassure.com.crt
        SSLCertificateKeyFile /home/ubuntu/certificate_bundle/www.simpliassure.com.key
        SSLCertificateChainFile /home/ubuntu/certificate_bundle/www.simpliassure.com_intermediate.crt

        <FilesMatch "\.(cgi|shtml|phtml|php)$">
                SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory /usr/lib/cgi-bin>
                SSLOptions +StdEnvVars
        </Directory>
    </VirtualHost>
</IfModule>
/etc/apache2/ports.conf:

Listen 80
Listen 443

Ubuntu’s ufw неактивен.
Запущено…

$ sudo ufw allow https
$ sudo a2enmod ssl
$ sudo a2enmod headers
$ sudo a2ensite default-ssl
$ sudo systemctl restart apache2

… без успеха.

Правила входящего трафика Oracle Virtual Cloud Network:

Правила входящего трафика Oracle Virtual Cloud Network

Какие-либо идеи?

  1. Проверьте ваш брандмауэр Oracle;
    Если порт 443 не открыт, откройте его.

  2. Проверьте ваш брандмауэр ufw;
    Запустите от имени root: ufw allow https

Запустите “nmap -p 443 132.145.100.143” снаружи, чтобы проверить, открыт ли порт/фильтруется ли он. Проверьте все брандмауэры на системе, а не только UFW.

Существует ошибка, явно замеченная в curl, похоже, что что-то не так с вашим сертификатом. Проверьте, какое имя хоста вы назначили сертификату против сервера. Также при создании сертификатов убедитесь, что вы используете subjectaltnames, чтобы он захватывал как имя хоста, fqdn, так и, при необходимости, ip в зависимости от ваших потребностей.

Думаю, вам нужно перенаправить порт 80 на порт 443.

<VirtualHost *:80> 
  ServerName example.com
  ServerAlias www.example.com

  Redirect permanent / https://example.com/
</VirtualHost>

Ответ или решение

Эффективное решение проблемы "Connection Refused" на порту 443 Apache

Введение

Недавно вы настроили SSL на вашем сервере Apache 2.4, используя Ubuntu 20.04, и столкнулись с ошибкой подключения для HTTPS (порт 443). Эта проблема может быть вызвана разными факторами, включая настройки вашего сервера, брандмауэра или конфигурацию самого Apache. В данном ответе мы подробно рассмотрим ключевые аспекты решения проблемы.

Анализ проблемы

Обратите внимание на выводы команд, которые вы представили:

  • curl simpliassure.com:443 возвращает ошибку "Connection refused".
  • nmap показывает, что порт 443 закрыт.
  • curl https://localhost возвращает ошибку SSL.

Эти выводы указывают на то, что порт 443 не слушает внешние подключения, несмотря на то, что он слушает локальные запросы.

1. Проверка включенности SSL и конфигурации Apache

Убедитесь, что модуль SSL включен и настроен корректно. Команды, которые вы уже выполнили, являются правильными:

sudo a2enmod ssl
sudo a2ensite default-ssl
sudo systemctl restart apache2

Однако важно проверить файл конфигурации /etc/sites-available/default-ssl.conf. Учтите, что SSL-сертификаты должны быть правильно указаны:

SSLCertificateFile /home/ubuntu/certificate_bundle/www.simpliassure.com.crt
SSLCertificateKeyFile /home/ubuntu/certificate_bundle/www.simpliassure.com.key
SSLCertificateChainFile /home/ubuntu/certificate_bundle/www.simpliassure.com_intermediate.crt

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

2. Проверка брандмауэра Oracle Cloud

Проблема может быть связана с правилами брандмауэра в Oracle Cloud. Перейдите в настройки вашей виртуальной сети и проверьте, разрешен ли входящий трафик на порт 443. Если он закрыт, создайте новое правило для открытия порта.

3. Перекрытие с ufw

Хотя вы указали, что ufw не активен, рекомендуется еще раз убедиться, что он не блокирует порты. Даже если ufw отключен, проверьте другие настройки брандмауэра, которые могут блокировать доступ.

4. Тестирование подключения

Используйте команду nmap для тестирования порта с внешней сети:

nmap -p 443 132.145.100.143

Это покажет, доступен ли порт 443 снаружи. Если он по-прежнему закрыт, очевидно, что проблема кроется вне вашего Apache.

5. Перенаправление с порта 80 на порт 443

Рекомендуется настроить переадресацию с порта 80 на 443, чтобы все не защищенные запросы перенаправлялись на HTTPS:

<VirtualHost *:80>
    ServerName simpliassure.com
    Redirect permanent / https://simpliassure.com/
</VirtualHost>

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

6. Проверка сертификата

Проверьте, правильно ли настроены ваши сертификаты. Убедитесь, что ваш сертификат соответствует домену simpliassure.com, а также, что вы включили альтернативные имена для сертификата, если это необходимо.

Заключение

Проблема "Connection refused" на порту 443 может быть вызвана различными факторами, и важно систематически проверять каждый из них. Убедитесь, что настройки Apache корректны, конфигурация сервера верна, а брандмауэр открыт. После выполнения всех этих шагов ваше HTTPS-соединение должно работать. Если вы столкнетесь с дальнейшими трудностями, возможно, стоит обратиться за помощью к специалистам или на форумы поддержки Apache.

Оцените материал
Добавить комментарий

Капча загружается...