云应用 通过 CLB 提供 HTTPS 访问

目前大部分应用,都会提供 HTTP 访问能力,如果希望帮助客户直接集成 HTTPS 的证书和域名绑定,可以参考这篇档。

相关产品
云应用 产品页,含版本规格、价格与购买入口。

一、架构设计

按照下面的架构,来制作一个支持 HTTPS 访问的安装包。

二、声明安装参数

在 package.yaml 声明安装参数如下:

args: – name: app_certification label: SSL 证书 widget: certificate-select optional: true – name: app_domain label: 域名 widget: domain-input optional: true certId: ${app_certification.certId}

对应安装表单效果:

通过 certificate-select 和 domain-input 声明了两个参数,分别接收客户的证书和域名输入。域名组件绑定证书 ID,可以帮助用户选择或者输入跟证书兼容的域名。

三、声明资源栈

在 variable.tf 添加两个变量,接收安装参数:

variable "app_certification" { type = object({ certId = string })}variable "app_domain" { type = object({ domain = string })}

在 deployment.tf,声明 CLB 的实例、监听器和相应转发规则:

# 声明 CLB 实例resource "tencentcloud_clb_instance" "open_clb" { # 负载均衡实例的网络类型,OPEN:公网,INTERNAL:内网 network_type = "OPEN" # 安全组 security_groups = [var.sg.security_group.id] # VPC vpc_id = var.app_target.vpc.id # 子网 subnet_id = var.app_target.subnet.id # 启用默认放通,即 Target 放通来自 CLB 的流量 load_balancer_pass_to_target = true}# 声明 CLB HTTPS 监听器resource "tencentcloud_clb_listener" "https_listener" { clb_id = tencentcloud_clb_instance.open_clb.id listener_name = "https_listener" # CLB 监听 443 端口,支持 HTTPS 访问 port = 443 protocol = "HTTPS" # 这里使用安装参数里声明的证书 certificate_id = var.app_certification.certId certificate_ssl_mode = "UNIDIRECTIONAL"}# 声明 CLB 转发规则resource "tencentcloud_clb_listener_rule" "https_rule" { clb_id = tencentcloud_clb_instance.open_clb.id listener_id = tencentcloud_clb_listener.https_listener.id # 这里配置为安装参数声明的域名,意思是当请求是这个域名的请求时,进行转发 domain = var.app_domain.domain # 哪个路径转发,这里配置根路径,全站转发 url = "/"}# 声明 CLB 后端服务绑定,将命中转发规则的流量,转发到 CVMresource "tencentcloud_clb_attachment" "clb_backend" { clb_id = tencentcloud_clb_instance.open_clb.id listener_id = tencentcloud_clb_listener.https_listener.id rule_id = tencentcloud_clb_listener_rule.api_https_rule.id targets { # CVM 实例ID(需替换成真实的实例ID) instance_id = tencentcloud_instance.demo_cvm[0].id # 假设我们的 CVM 打开的是 3000 的 http 端口 port = 3000 # 权重 weight = 100 }}

四、原理

CLB 这个产品设计是用作负载均衡,但也支持用作证书卸载。它对客户提供 HTTPS 的端口,然后,后端转发到软件的 HTTP 端口。

CLB 的几个资源,对应控制台界面如上图。其中,证书是挂在监听器中的:

五、完整示例

完整示例可以 访问 CNB 获取。

六、其他方案

除 CLB 外,TKE 的七层 Service、CDN、EdgeOne 等加速产品,也支持证书部署。后续云应用将提供更多整合示例供参考。

赞 (0)
上一篇 4天前
下一篇 4天前