API网关支持HTTPS吗?宽带设置里这步不能漏

家里装了企业级路由器,又搭了个内部API网关,结果前端调用总失败——浏览器地址栏一刷出来就标个‘不安全’,点进去还弹警告。其实问题很可能出在HTTPS没配好,不是网关不支持,而是你还没开。

API网关天生就吃HTTPS这口饭

主流API网关,比如Kong、APISIX、Traefik,甚至阿里云API网关、腾讯云TSF里的网关模块,全默认支持HTTPS。它不像老式HTTP代理只转80端口,现代网关从设计第一天起,就要求能接443、验证书、做TLS终止。你家宽带光猫后面接的软路由跑APISIX,只要把SSL证书丢进配置目录,再改两行YAML,外网用https://api.yourhome.local就能通。

宽带环境下的实操卡点在哪?

很多人试了HTTPS还是报错,不是网关不行,是宽带侧拦住了。常见三处:

  • 光猫开启了‘路由模式’但没放行443端口(有些运营商默认屏蔽);
  • 家用宽带分配的是动态公网IP,域名解析没跟上,https请求根本没走到你家网关;
  • 自签名证书直接扔上去,手机和Chrome一概拒收,得换成Let's Encrypt自动签发的免费证书才认。

举个真例子:上海电信宽带用户,在光猫后台把‘DMZ主机’指向树莓派IP,再用acme.sh脚本申请wildcard证书,绑定到APISIX的ssl对象里,第二天手机APP连家庭NAS的API接口,小绿锁稳稳挂在地址栏。

配置片段参考(APISIX)

curl http://127.0.0.1:9180/apisix/admin/ssls/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d '{
  "cert": "-----BEGIN CERTIFICATE-----\nMIIDXTCCAkWgAwIBAgIJAN...\n-----END CERTIFICATE-----",
  "key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0B...\n-----END PRIVATE KEY-----",
  "snis": ["api.home.lan"]
}'

注意:cert和key内容要替换成你实际生成的PEM文本,snis填你对外暴露的域名,别写localhost或192.168.x.x——浏览器不认。

最后提醒一句:有些老款千兆光猫,即使开了443端口,遇到TLS 1.3握手也会抖三抖。这时候在网关配置里加一行 ssl_protocols TLSv1.2 TLSv1.3;,比换设备省事多了。