2

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

该应用程序在端口 9000 中运行,因此,消费者将只写mysite.com,球童应该负责将请求重定向到端口 9000,但维护 HTTPS。该站点的 caddy 中的配置是:

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。我能做些什么?

4

1 回答 1

5

来自球童文档

to是要代理到的目标端点。至少需要一个,但可以指定多个。如果未指定方案 (http/https),​​则使用 http。Unix 套接字也可以通过前缀“unix:”来使用。

所以也许它正在向代理的https端点发送http请求。

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

修理它?

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

于 2017-07-25T15:52:29.743 回答