如何解决如何从我的 Go 微服务通过 HTTPS 获得响应?
我在 Cloudflare Pages 上托管了一个 vue.js 网站,在 Hetzner 上托管了一个单独的微服务,它与数据库一起工作。 在我的前端,我正在使用 axios 发出请求:
let response = await axios.get("...")
response.data.forEach((data) => {
console.log(data)
})
对于后端,我使用 Go 和 gin web 框架。我的 CORS 配置:
func CORSMiddleware() gin.HandlerFunc {
return func(c *gin.Context) {
c.Writer.Header().Set("Access-Control-Allow-Origin","*")
c.Writer.Header().Set("Access-Control-Max-Age","86400")
c.Writer.Header().Set("Access-Control-Allow-Methods","POST,GET,OPTIONS,PUT,DELETE,UPDATE")
c.Writer.Header().Set("Access-Control-Allow-Headers","Origin,Content-Type,Content-Length,Accept-Encoding,X-CSRF-Token,Authorization")
c.Writer.Header().Set("Access-Control-Expose-Headers","Content-Length")
c.Writer.Header().Set("Access-Control-Allow-Credentials","true")
if c.Request.Method == "OPTIONS" {
c.AbortWithStatus(200)
} else {
c.Next()
}
}
}
它可以在本地运行并使用 RESTer 扩展,但是如果我将它部署到 Cloudflare Pages,我会收到 mixed content 错误。如果我理解正确,这是因为对微服务的请求通过 HTTP 而不是 HTTPS。我试过像这样生成证书和密钥:
go run $GOROOT/src/crypto/tls/generate_cert.go --host ...
然后使用 TLS 运行微服务:
router.RunTLS("...","cert.pem","key.pem")
但它没有帮助,现在我收到此错误:
HTTP: TLS handshake error from ...: remote error: tls: bad certificate
我也尝试过 autotls 杜松子酒,但也不起作用。我必须如何配置我的微服务才能使其与 Cloudflare Pages 和 HTTPS 配合使用?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。