微服务平台 TSF 配置 HTTPS

这篇指导通过 TSF 微服务网关配置 HTTPS 访问,需准备 SSL 证书并在 application.yml 中设置证书路径、密码和类型,最后验证访问。 准备 SSL 证书:可通过购买或自行生成。 配置证书信息:在 application.yml 中设置 ssl 相关参数。 访问验证:提供 Zuul 和 SCG 网关的配置示例及成功验证结果。

相关产品
微服务平台 TSF 产品页,含版本规格、价格与购买入口。

一、操作场景

这篇档指导你通过 TSF 的微服务网关配置 HTTPS 访问。

二、步骤1:准备 SSL 证书

你可以通过以下任一种方式准备一个 SSL 证书:

·方式一:购买(通过证书授权机构购买)

·方式二:自己生成(通过 keytool 或 openssl 工具生成)

三、步骤2:配置证书信息

注意:如果网关类型为 Envoy 网关,证书需要放在部署 Envoy 网关应用的时候配置的路径下。

1. 将 SSL 证书放到 resources下 的 https 文件夹(可自定义名称)中:

2. 在配置文件 application.yml 中设置证书的基本信息。如下:

# ssl证书相关配置server: ssl: #启用ssl enabled: true #证书地址 key-store: classpath:https/keystore.p12 #证书密码 key-store-password: 123456 #证书类型 key-store-type: JKS

注意:SpringCloudZuul 与 SpringCloudGateway 配置方式一致,是因为 SpringBoot 服务使用 SSL-HTTPS 的通用方式。

四、步骤3:访问验证

zuul application.yml 配置如下:

server: port: 18000 ssl: enabled: true key-store: classpath:https/keystore.p12 key-store-password: 123456 key-alias: tomcathttps key-store-type: JKSspring: application: name: zuul-demo cloud: consul: host: 127.0.0.1 port: 8500 discovery: heartbeat: enabled: true ttl-value: 5 ttl-unit: s preferIpAddress: trueribbon: ReadTimeout: 10000 ConnectTimeout: 5000zuul: max: host: connections: 500 host: socket-timeout-millis: 10000 connect-timeout-millis: 5000 routes: api-v1: path: /v1/** serviceId: provider-demo stripPrefix: true api-v2: path: /v2/** url: http://127.0.0.1:18081 stripPrefix: true api-v3: path: /*/v3/** serviceId: provider-demo stripPrefix: true ignored-patterns: /**/ignore/**hystrix: command: default: execution: timeout: enabled: true isolation: thread: timeoutInMilliseconds: 30000

HTTPS 访问网关成功的显示如下:


scg application.yml 配置如下:

server: port: 8080 ssl: enabled: true key-store: classpath:https/keystore.p12 key-store-password: 123456 key-alias: tomcathttps key-store-type: JKS error: include-exception: truespring: application: name: sc-gateway cloud: gateway: discovery: locator: enabled: true lower-case-service-id: false httpclient: connectTimeout: 10 responseTimeout: 20s routes: – id: api-v1 uri: lb://PROVIDER-DEMO order: 0 predicates: – Path=/provider/** filters: – StripPrefix=1# consul:# host: 127.0.0.1# port: 8500# enabled: true# scheme: HTTPlogging: file: /var/logs/${spring.application.name}/${spring.application.name}.log level: root: INFO com.tencent.tsf: INFO

HTTPS 访问网关成功的显示如下:


五、常见问题

问题描述:当使用自签名证书时,Chrome 会拦截请求,并展示 ERR_CERT_INVALID,旧版本可以选择跳过,继续访问,但是新版本 Chrome 不允许继续,且提示:你的连接不是私密连接攻击者可能会试图从 XX.XX.XX.XX 窃取你的信息(例如:密码、通讯内容或信用卡信息)。

解决方案:在 Chrome 该页面上,输入 thisisunsafe,即可进行访问,用来验证 HTTPS 配置是否成功。线上环境不推荐使用自签名证书。

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