如何debuggingSSL连接丢失的位置?

大的图片是我想设置一个子域的SSL连接,如果我去当前,如果我去非安全的url的网站工作,但如果requeset https://sub.domain.com没有来自服务器的响应:

此网页不可用ERR_CONNECTION_CLOSED

这是一个多方面的问题,所以请让我知道,如果我最好把问题分解成小块。 也随时让我知道,如果任何这将是更好的StackOverflow。 这就是我如何看待构成这种情况的一系列物品:

  1. SSL证书由startssl.com提供
  2. url归Godaddy所有(不是由我select)
  3. CNAME指向Microsoft Azure虚拟机
  4. VM是标准的Ubuntu 14.04.2 LTS
  5. Nginx设置了一个反向代理来指向两个URL,以在同一台服务器上分离应用程序。
  6. 该应用程序是与MUP部署的meteor应用程序 。
  7. nginx的“虚拟主机”就像这样安装meteor/套接字。

我已经尝试了几种方法来设置SSL并进行debugging:

  • 遵循这些具有mup(部署工具)设置的说明
  • Startssl 指令 ,用nginx设置证书
  • 在Azurepipe理控制台中,我已经上传了“云服务”证书

已知未知数:

  • 不知道使用Microsoft Azure是否有所作为,或者是因为无论使用什么IaaS,ubuntu VM都是正在运行的。
  • 不知道https请求被丢弃的位置(例如它是否到达VM?是否到达上游nginx代理服务器?)。 http:// url工作正常,我可以查看上游服务器的日志,但在上游服务器的日志中没有看到任何安全url。
  • 从我的电脑的安全和不安全的urltraceroute似乎都有相同的path。 这是否意味着这方面的任何事情?

本质上,我正在寻找帮助,我怎么可以尝试debugging为什么安全的url没有find线性的方式。 尤其是关于第二个未知数,因为我目前不知道连接丢失的位置/请求目前下降到兔子洞的距离。

谢谢!

是的,这是一个相当大的问题。 从一般意义上讲,您可以像调查其他与networking相关的问题一样进行debugging: tcpdump ,查看数据包是否到达需要的位置,以及是否获得了您期望的内容,以及然后你检查接收数据包的日志,看看它们是如何被处理的。

鉴于错误信息的性质,我怀疑连接正在build立,然后它被不公正地closures。 作为HTTP / HTTPS,我倾向于导致端口443不使用SSL的nginx错误configuration。 nginx错误日志会在这些行中提到一些东西。