Как отлаживать, когда теряется SSL-соединение?

В целом, я пытаюсь настроить SSL-соединение для субдомена, если я перехожу на текущий момент, если я перехожу на незащищенный URL-адрес, на котором работает веб-сайт, но при наличии реквизита https://sub.domain.com/ его нет ответ от сервера:

Эта веб-страница недоступна ERR_CONNECTION_CLOSED

Это многогранный вопрос, поэтому, пожалуйста, дайте мне знать, если мне лучше разбить вопрос на куски размером с укус. Также не стесняйтесь, дайте мне знать, если что-нибудь из этого будет лучше на StackOverflow. Вот как я рассматриваю цепочку предметов, составляющих ситуацию:

  1. SSL-сертификат, предоставляемый openssl.com
  2. URL принадлежит Godaddy (не по моему выбору)
  3. CNAME указывает на виртуальную машину Microsoft Azure
  4. ВМ это стандартная Ubuntu 14.04.2 LTS
  5. Nginx настроен с обратным прокси-сервером для указания двух URL-адресов для разделения приложений на одном сервере.
  6. Приложение представляет собой приложение Meteor, развернутое с помощью mup.
  7. 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 будет упоминать что-то в том же духе.

Другие вопросы по тегам