与凯迪的HTTPS代理

时间:2017-07-25 15:49:42

标签: ssl go tls1.2 caddy

我正在使用Golang应用程序和Caddy作为HTTP服务器。 golang应用程序拒绝每个http连接,它只能通过HTTPS使用。此应用是一种其他应用消耗的API /服务。因为它需要HTTPS我安装了Caddy所以我可以利用自动SSL证书并使用代理在端口之间切换。

应用程序在端口9000中运行,因此,消费者只会写mysite.com并且caddy应该负责将请求重定向到端口9000但保持HTTPS。该网站的球童配置为:

mysite.com {
    proxy / :9000 {
        max_fails 1
    }
    log logfile
}

然而,似乎在代理服务器上,HTTPS丢失了。我检查了应用程序的日志(没有球童的日志),我得到了这个:

http: TLS handshake error from xxx.xxx.xxx.xxx:xxxx: tls: oversized record received with length 21536

所以,基于这个错误,对我来说看起来像是由caddy制作的HTTP代理正在丢失HTTPS。我该怎么办?

1 个答案:

答案 0 :(得分:6)

来自caddy docs

  

是要代理的目标端点。至少需要一个,   但可以指定多个。如果方案(http / https)不是   指定,使用http。前缀也可以使用Unix套接字   " UNIX:"

因此,它可能会向代理 https 端点发送 http 请求。

mysite.com {
    proxy / https://localhost:9000 {
        max_fails 1
    }
    log logfile
}

修好吗?

如果是这种情况,您可能不会严格需要您的应用:9000来监听https。它可以简化您的部署或证书管理,只需让它监听http并让caddy管理所有证书。