SSL установлен на Apache2, но HTTPS не работает - программирование
Подтвердить что ты не робот

SSL установлен на Apache2, но HTTPS не работает

Недавно я установил SSL-сертификат на моем сервере Amazon EC2 Ubuntu 12.04 (32 бит) с Apache 2.

Когда я пытаюсь получить доступ к моему сайту через https, он не загружается. Когда я выполняю nmap-сканирование, я вижу, что порт 443 не открыт.

Я попытался открыть порт 443 в моих ip-таблицах безрезультатно. iptables -L yeilds

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https

Вот как я установил ssl

Я изменил /etc/init.d/apache2.conf, чтобы включить ssl.conf и измененный ssl.conf, чтобы включить требуемый путей моих файлов сертификатов, то есть

SSLCertificateFile/путь/файл SSLCertificateKeyFile/путь/файл SSLCertificateChainFile/путь/файл

Я настроил свою группу безопасности для разрешения входящих запросов с порта 443 (источник TCP: 0.0.0.0/0)

Когда я выполняю следующий тест с php

if (!extension_loaded('openssl')) 
{
  echo "not loaded";
}
else
{
  echo "loaded"   ;
}

Я получаю "загружен".

Любые идеи?

4b9b3361

Ответ 1

В httpd-ssl.conf у вас есть   Слушайте 443

Если нет, попробуйте добавить это и перезапустите apache.

Ответ 2

Сначала проверьте, включен ли mod_ssl. Если нет, включите его, запустив a2enmod ssl. Затем проверьте, прослушивает ли Apache порт 443 для https. Затем проверьте, не блокирует ли брандмауэр порт 443.

Ответ 3

В httpd.conf по умолчанию отключено:

# Secure (SSL/TLS) connections
# Include conf/extra/httpd-ssl.conf    

Просто удалите # из Include и перезапустите Apache.

Ответ 4

Если вы можете подключиться локально (например, с помощью telnet localhost 443, как предлагает mti), проверьте, правильно ли настроен брандмауэр.

В моем случае ufw блокировал все, поэтому мне пришлось ufw allow 443, который исправил основную проблему до одного и того же симптома.

Ответ 5

Я столкнулся с ситуацией, когда процесс прослушивался на порту 443, брандмауэр был полностью открыт, SELinux был отключен, и я все еще не мог подключиться к порту 443. Даже с локального хоста. Я продолжал получать:

telnet 127.0.0.1 443
telnet: connect to address 127.0.0.1: Connection refused`

Оказывается, таблица NAT iptables имела некоторые правила, перенаправляющие трафик, поступающий на порт 443, на другой порт (8443). Ничего не слушает порт 8443.

# iptables --table nat --list
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
REDIRECT   tcp  --  anywhere             anywhere            tcp dpt:https redir ports 8443 

Удаление соответствующих записей NAT устранило проблему для меня.

Ответ 6

Если SSL-ключи не установлены (или были необъяснимо прокомментированы гремлинами), Apache 2.2 SSL будет терпеть неудачу. В журнале не будет ошибок, и он не будет слушать 443. Сайты http: 80 будут работать.

Ответ 7

Для меня это тупой кеш Chrome. Ctrl + Shift + Del чтобы очистить кэш, перезапустить Chrome, и теперь SSL работает правильно.

Ответ 8

Если кто-то еще обнаружит это и использует Amazon Lightsail (как и я), вам придется использовать их веб-интерфейс, чтобы явно открыть порт 443.

Я потратил часы на обливание файлов конфигурации сервера, прежде чем обнаружил, что:/

Ответ 9

Иногда работает iptables -F. У меня был порт 443, открытый для входа в Amazon, но все же сайт не открывался в моем браузере.

Записан на сайт, дал iptables -F, и сразу сайт был доступен.