跳转至

虚拟网关支持单向TLS协议

支持版本: v1.4.0+

1.HTTPS

HTTPS协议大家都不陌生,一般可以理解为HTTP+TLS,主要是在HTTP协议的基础上通过TLS证书验证服务器的身份,并为C/S之间的通信进行加密,从而提升数据传输的安全性。HTTPS默认工作在TCP协议的443端口。

  • TLS协议在握手阶段使用非对称加密算法,握手成功后采用相同密钥使用对称加密算法。具体可以分为单向TLS和双向TLS(mTLS),Hango目前仅支持单向的TLS。

  • 单向TLS协议仅需要在客户端验证服务端证书的有效性,握手流程如下图所示,用户需要上传服务端证书和密钥。

2.功能架构图

功能架构图如下图所示,用户需要在服务端生成TLS证书,一个正式可以绑定多个子域名,最后在创建虚拟网关的时候关联已经域名即完成虚拟网关-域名-证书的关联关系。

3.操作步骤

3.1 创建用于服务签名的根证书和私钥

openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -subj '/O=example Inc./CN=example.com' -keyout example.com.key -out example.com.crt

3.2.以httpbin.example.com为例,创建服务器证书和私钥

openssl req -out httpbin.example.com.csr -newkey rsa:2048 -nodes -keyout httpbin.example.com.key -subj "/CN=httpbin.example.com/O=httpbin organization"
openssl x509 -req -sha256 -days 365 -CA example.com.crt -CAkey example.com.key -set_serial 0 -in httpbin.example.com.csr -out httpbin.example.com.crt

3.3.平台上传服务器证书和私钥

3.4. 添加域名并绑定该证书

3.5. 创建虚拟网关并绑定域名

3.6. 请求携带证书访问

curl -v -HHost:httpbin.example.com --resolve "httpbin.example.com:443:10.178.207.65" --cacert example.com.crt "https://httpbin.example.com:443/status/418"

Back to top