首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GoLang HTTPS

GoLang HTTPS
EN

Stack Overflow用户
提问于 2018-04-07 00:54:49
回答 1查看 1.6K关注 0票数 0

我有一台服务器在windows中使用Plesk。

我有一个域(example.com),我还为这个域购买了一个SSL证书。

我刚刚成功安装并在我的服务器中配置域和ssl。因此,现在我可以使用https://www.example.com或example.com连接到我的web,并将重定向到https://...

在那之前一切都很好。

但是现在我已经在GoLang中开发了一个API,由于某些原因,它无法在443端口开始侦听。(我认为这可能是因为已经被使用了?)所以我换了8081端口。现在,当我想对API提出请求时,我必须使用https://www.example.com:8081/api/v1/users

问题是,一些应用程序显示了一个错误“证书无效”,我认为这是因为端口不是443。我能跑443英里吗?

GO中的代码是这样的:( crt和key是由GoDaddy提供的,我就是在这里买的SSL)

代码语言:javascript
运行
复制
func main() {

router := NewRouter()



handler := cors.AllowAll().Handler(router)

log.Fatal(http.ListenAndServeTLS(":8081", "tls.crt", "tls.key", handler))
}
EN

回答 1

Stack Overflow用户

发布于 2018-04-08 09:47:57

  1. 运行nginx (反向代理)后面的整个Golang应用程序:
  2. 使用您的域在Nginx中创建虚拟主机服务器块。https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-virtual-hosts-on-ubuntu-16-04
  3. 设置您的SSL证书
  4. 将该域指向您的Golang应用程序 服务器{ server_name example.com;location /{ proxy_pass http://localhost:8081;proxy_http_version 1.1;proxy_set_header主机$host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X转发-For $proxy_add_x_forwarded_for;proxy_set_header X转发-Proto $scheme;proxy_cache_bypass $http_upgrade;proxy_pass_request_headers on;proxy_read_timeout 150;} ssl_certificate /path/to/chainfile/example.com/ 301 d.pem;ssl_certificate_key /path/to/privatekeyfile/example.com/301 d.pem;if ($scheme = "https") {返回301 uri;}}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49702778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档