Ответ 1
В httpd-ssl.conf у вас есть Слушайте 443
Если нет, попробуйте добавить это и перезапустите apache.
Недавно я установил 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" ;
}
Я получаю "загружен".
Любые идеи?
В httpd-ssl.conf у вас есть Слушайте 443
Если нет, попробуйте добавить это и перезапустите apache.
Сначала проверьте, включен ли mod_ssl. Если нет, включите его, запустив a2enmod ssl. Затем проверьте, прослушивает ли Apache порт 443 для https. Затем проверьте, не блокирует ли брандмауэр порт 443.
В httpd.conf по умолчанию отключено:
# Secure (SSL/TLS) connections
# Include conf/extra/httpd-ssl.conf
Просто удалите # из Include и перезапустите Apache.
Если вы можете подключиться локально (например, с помощью telnet localhost 443
, как предлагает mti), проверьте, правильно ли настроен брандмауэр.
В моем случае ufw
блокировал все, поэтому мне пришлось ufw allow 443
, который исправил основную проблему до одного и того же симптома.
Я столкнулся с ситуацией, когда процесс прослушивался на порту 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 устранило проблему для меня.
Если SSL-ключи не установлены (или были необъяснимо прокомментированы гремлинами), Apache 2.2 SSL будет терпеть неудачу. В журнале не будет ошибок, и он не будет слушать 443. Сайты http: 80 будут работать.
Для меня это тупой кеш Chrome. Ctrl + Shift + Del
чтобы очистить кэш, перезапустить Chrome, и теперь SSL работает правильно.
Если кто-то еще обнаружит это и использует Amazon Lightsail (как и я), вам придется использовать их веб-интерфейс, чтобы явно открыть порт 443.
Я потратил часы на обливание файлов конфигурации сервера, прежде чем обнаружил, что:/
Иногда работает iptables -F. У меня был порт 443, открытый для входа в Amazon, но все же сайт не открывался в моем браузере.
Записан на сайт, дал iptables -F, и сразу сайт был доступен.