Как отлаживать, когда теряется SSL-соединение?
В целом, я пытаюсь настроить SSL-соединение для субдомена, если я перехожу на текущий момент, если я перехожу на незащищенный URL-адрес, на котором работает веб-сайт, но при наличии реквизита https://sub.domain.com/ его нет ответ от сервера:
Эта веб-страница недоступна ERR_CONNECTION_CLOSED
Это многогранный вопрос, поэтому, пожалуйста, дайте мне знать, если мне лучше разбить вопрос на куски размером с укус. Также не стесняйтесь, дайте мне знать, если что-нибудь из этого будет лучше на StackOverflow. Вот как я рассматриваю цепочку предметов, составляющих ситуацию:
- SSL-сертификат, предоставляемый openssl.com
- URL принадлежит Godaddy (не по моему выбору)
- CNAME указывает на виртуальную машину Microsoft Azure
- ВМ это стандартная Ubuntu 14.04.2 LTS
- Nginx настроен с обратным прокси-сервером для указания двух URL-адресов для разделения приложений на одном сервере.
- Приложение представляет собой приложение Meteor, развернутое с помощью mup.
- Nginx 'vhost' настроен так, чтобы работать с метеором / сокетами.
Я попробовал несколько способов настроить SSL и отладить его:
- Следуя этим инструкциям, у которых есть mup (средство развертывания) настройки STUD
- Инструкции по запуску, поэтому настройте сертификат с помощью nginx
- В консоли управления Azure я загрузил сертификат для "облачной службы".
Известные неизвестные:
- Не знаю, имеет ли значение использование Microsoft Azure или нет, потому что виртуальная машина ubuntu - это то, что запускается независимо от того, какой IaaS используется.
- Не знаю, где вниз по линии пропадает запрос https (например, он попадает на виртуальную машину? Он попадает на прокси-сервер восходящего потока nginx?). Http:// url работает нормально, и я могу просматривать журналы вышестоящего сервера, но ничего не вижу в журналах вышестоящего сервера для защищенного URL.
traceroute
с моего компьютера как защищенные, так и незащищенные URL-адреса имеют одинаковый путь. Означает ли это что-нибудь в этом контексте?
По сути, я ищу помощь в том, как я могу попытаться отладить, почему безопасный URL не найден в линейной форме. Особенно в отношении второго неизвестного, поскольку я в настоящее время не знаю, где потеряно соединение / как далеко в настоящее время запрос попадает в кроличью нору.
Спасибо!
1 ответ
Да, это довольно большой вопрос. В общем смысле вы отлаживаете это так же, как и для любой другой проблемы, связанной с сетью: tcpdump
чтобы увидеть, попадают ли пакеты туда, куда им нужно, и получили ли они содержимое, которое вы ожидаете, а затем вы проверяете журналы того, что получает пакеты, чтобы увидеть, как они обрабатываются.
Учитывая характер сообщения об ошибке, я подозреваю, что соединение устанавливается, а затем оно бесцеремонно закрывается. Будучи HTTP/HTTPS, я склоняюсь к неправильной конфигурации nginx, из-за которой порт 443 не использует SSL. Журнал ошибок nginx будет упоминать что-то в том же духе.