gpt4 book ai didi

api - Go 语言 HTTPS API

转载 作者:数据小太阳 更新时间:2023-10-29 03:11:47 25 4
gpt4 key购买 nike

我在使用 Plesk 的 Windows 中有一个服务器。

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

我刚刚安装成功并在我的服务器中配置了域和 ssl。所以现在我可以使用 https://www.example.com 加入我的网站了或 example.com 并将重定向到 https://....

直到一切正常。

但是现在我用GoLang开发了一个API,不知为何无法在443端口开始监听。 (我想也许是因为已经被使用了?)所以我改成了 8081 端口。现在,当我想向我的 API 发出请求时,我必须使用 https://www.example.com:8081/api/v1/users例如。

问题是某些应用程序向我显示错误“证书无效”,我认为这是因为端口不是 443。有什么方法可以让我在 443 中运行 go 吗?

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

func main() {

router := NewRouter()



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

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

最佳答案

  1. 在 nginx(反向代理)后面运行整个 Golang 应用程序:

  2. 使用您的域在 Nginx 中创建一个虚拟主机服务器 block 。 https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-virtual-hosts-on-ubuntu-16-04

  3. 设置您的 SSL 证书

  4. 将该域指向您的 Golang 应用

    server {

    server_name example.com;

    location / {
    proxy_pass http://localhost:8081;
    proxy_http_version 1.1;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_cache_bypass $http_upgrade;
    proxy_pass_request_headers on;
    proxy_read_timeout 150;
    }

    ssl_certificate /path/to/chainfile/example.com/abcd.pem;
    ssl_certificate_key /path/to/privatekeyfile/example.com/abcd.pem;

    if ($scheme != "https") {
    return 301 https://$host$request_uri;
    }
    }

关于api - Go 语言 HTTPS API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49702778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com