You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

域名转发至根服务器Golang Web服务时出现TLS/SSL问题如何解决?

错误原因

你当前使用的域名URL转发本质是HTTP重定向,会将用户访问地址从https://my-fancy-domain.com跳转到https://123.123.123.123,浏览器校验SSL证书时会发现证书主体是你的域名,和当前访问的IP地址不匹配,因此触发安全警告,和证书是否为自签无关。

最优解决方案(公网IP 443端口可正常访问)

这是成本最低、性能最好的方案:

  • 登录域名管理后台,删除现有的URL转发规则,新增A记录:将根域名(主机记录填@)、需要用到的子域名(比如www)的解析值设为你的静态公网IP123.123.123.123,TTL可设置为300秒加快解析生效速度。
  • 从域名服务商处下载对应域名的SSL证书文件,一般包含证书链文件(通常命名为fullchain.pem)和私钥文件(通常命名为privkey.pem),上传到你的自有服务器。
  • 修改Golang Web服务代码,启用HTTPS监听,加载对应的证书文件,示例代码如下:
package main

import (
	"net/http"
)

func main() {
	// 注册你的业务路由
	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
		w.Write([]byte("站点内容"))
	})
	// 替换为你的证书文件、私钥文件的实际路径
	err := http.ListenAndServeTLS(":443", "fullchain.pem", "privkey.pem", nil)
	if err != nil {
		panic("启动HTTPS服务失败: " + err.Error())
	}
}
  • 配置服务器防火墙和安全组,放行443端口的入站TCP请求。
  • 解析生效后可通过nslookup my-fancy-domain.com验证解析结果是否为你的公网IP,验证通过后直接访问域名即可正常显示安全标识。
备选解决方案(公网IP 443端口被封禁)

如果运营商封禁了你公网IP的443/80端口,不要使用URL重定向,改用域名服务商提供的反向代理/站点加速功能:

  • 保持SSL证书部署在服务商的反向代理节点上。
  • 配置反向代理回源规则,将所有域名请求转发到你的公网IP的可用端口(比如8443),回源协议可根据需求选择HTTP或HTTPS,选择HTTPS回源时只需在自有服务器部署自签证书即可,不需要浏览器信任,只要反向代理节点信任即可。
  • 将域名解析指向服务商的反向代理节点,用户访问时不会触发安全警告。

内容的提问来源于stack exchange,提问作者Freez3r

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 08:45:07