带有球童的 HTTPS 代理
HTTPS proxy with caddy
我正在使用 Golang 应用程序和 Caddy 作为 HTTP 服务器。 golang 应用程序拒绝每个 http 连接,它只能通过 HTTPS 使用。此应用程序是一种被其他应用程序使用的 API/service。因为,它需要 HTTPS 我安装了 Caddy,所以我可以利用自动 SSL 证书并使用代理在端口之间切换。
应用程序在运行端口9000,所以,消费者只会写mysite.com
,caddy应该负责重定向请求到端口9000,但保持HTTPS。该站点在 caddy 中的配置是:
mysite.com {
proxy / :9000 {
max_fails 1
}
log logfile
}
然而,似乎在创建代理时 HTTPS 丢失了。我检查了应用程序的日志(没有 caddy 的日志),我得到了这个:
http: TLS handshake error from xxx.xxx.xxx.xxx:xxxx: tls: oversized record received with length 21536
所以,基于这个错误,在我看来,caddy 制作的 HTTP 代理正在丢失 HTTPS。我能做什么?
to is the destination endpoint to proxy to. At least one is required,
but multiple may be specified. If a scheme (http/https) is not
specified, http is used. Unix sockets may also be used by prefixing
"unix:".
所以它可能正在向代理的 https 端点发送 http 请求。
是否
mysite.com {
proxy / https://localhost:9000 {
max_fails 1
}
log logfile
}
修复它?
如果是这种情况,您可能不需要您的应用在 :9000 上严格监听 https。它可以简化您的部署或证书管理,只让它监听 http 并让 caddy 管理所有证书。
我正在使用 Golang 应用程序和 Caddy 作为 HTTP 服务器。 golang 应用程序拒绝每个 http 连接,它只能通过 HTTPS 使用。此应用程序是一种被其他应用程序使用的 API/service。因为,它需要 HTTPS 我安装了 Caddy,所以我可以利用自动 SSL 证书并使用代理在端口之间切换。
应用程序在运行端口9000,所以,消费者只会写mysite.com
,caddy应该负责重定向请求到端口9000,但保持HTTPS。该站点在 caddy 中的配置是:
mysite.com {
proxy / :9000 {
max_fails 1
}
log logfile
}
然而,似乎在创建代理时 HTTPS 丢失了。我检查了应用程序的日志(没有 caddy 的日志),我得到了这个:
http: TLS handshake error from xxx.xxx.xxx.xxx:xxxx: tls: oversized record received with length 21536
所以,基于这个错误,在我看来,caddy 制作的 HTTP 代理正在丢失 HTTPS。我能做什么?
to is the destination endpoint to proxy to. At least one is required, but multiple may be specified. If a scheme (http/https) is not specified, http is used. Unix sockets may also be used by prefixing "unix:".
所以它可能正在向代理的 https 端点发送 http 请求。
是否
mysite.com {
proxy / https://localhost:9000 {
max_fails 1
}
log logfile
}
修复它?
如果是这种情况,您可能不需要您的应用在 :9000 上严格监听 https。它可以简化您的部署或证书管理,只让它监听 http 并让 caddy 管理所有证书。