分布式系统内部接口http还是https呢

这边有两个系统, 用户系统跟积分系统, 免不了内部交互, 需要内部接口
语言php, 内部接口http方式, 那么有个问题请教下
线上用http还是https呢
https: 需要申请域名, 人家知道请求连接还是可以直接访问你的接口
http: 域名可能就需要线上机器host指定下, 可能每天机器都要

那么这种内部接口应该用http还是https好呢?

阅读 4.9k
3 个回答

如果单纯考虑内部接口,请考虑各个服务器之间是否有跨网跨服务器中心的情况。HTTPS 在内网的使用主要是为了防止数据泄露和篡改。如果你的服务都跑在同一家云服务商的私有网络上,就没有必要使用 HTTPS 了。反之如果没使用私有网络,或跨云服务商,流量会经过公网,或可能被其他主机观测到,则必须使用 HTTPS 以保证安全。

另外在内网环境下使用 HTTPS 可以不额外申请域名,有两种思路。

  • 使用公网域名的子域名,并申请此子域名的泛域名,例:*.local.somedoman.com。
  • 使用自签证书

    • 域名使用 host
    • 使用 Overlay Network 相关工具(适合非常庞大的内网服务接口管理维护)

个人建议使用自签证书,并启用双向 HTTPS 认证。如果服务器主机数量不大的话,使用 host 管理即可。
自签证书推荐使用 FiloSottile/mkcert

PS:其实你的需求跟 Kubernetes 服务端的需求一模一样。 Kubernetes 要求使用的就是自签证书(因为非自签的只能做单向认证,自签的可以做双向认证。Kubernetes 用的 flannel 做网络管理,能实现几乎无限制的主机数量。)

内部接口还用啥域名? 直接IP访问,IP绑定,防止别人访问。

对内,一般RPC,对外,一般http

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题