如何使用Pulumi为Google负载均衡器(GLB)配置通配符证书
使用Pulumi部署GCP负载均衡器通配符SSL证书示例
GCP的ManagedSslCertificate本身支持通配符域名(比如*.example.com),核心是要配置正确的域名验证规则。以下是完整的Pulumi TypeScript示例代码:
核心代码实现
import * as gcp from "@pulumi/gcp"; // 1. 创建DNS托管区域(已有对应区域可跳过此步骤) const domainZone = new gcp.dns.ManagedZone("domain-zone", { dnsName: "example.com.", description: "DNS zone for wildcard certificate verification", }); // 2. 创建通配符SSL证书(自动DNS验证模式) const wildcardSslCert = new gcp.compute.ManagedSslCertificate("wildcard-cert", { managed: { domains: ["*.example.com"], // 指定通配符域名 dnsAuthorization: { domain: "example.com", // 根域名用于自动验证 }, }, }); // 3. 配置后端服务(替换为你的实际实例组) const backendService = new gcp.compute.BackendService("app-backend", { portName: "http", protocol: "HTTP", backends: [{ group: "projects/your-project-id/zones/your-zone/instanceGroups/your-instance-group", }], }); // 4. 创建URL映射 const urlMap = new gcp.compute.UrlMap("app-urlmap", { defaultService: backendService.selfLink, }); // 5. 创建HTTPS代理并关联通配符证书 const httpsProxy = new gcp.compute.TargetHttpsProxy("app-https-proxy", { urlMap: urlMap.selfLink, sslCertificates: [wildcardSslCert.selfLink], }); // 6. 创建全局转发规则(对外提供HTTPS访问) const httpsForwardingRule = new gcp.compute.GlobalForwardingRule("app-https-rule", { target: httpsProxy.selfLink, portRange: "443", ipVersion: "IPV4", }); // 输出关键资源信息 export const certificateId = wildcardSslCert.id; export const publicIp = httpsForwardingRule.ipAddress;
关键注意事项
- 如果你的域名DNS未托管在GCP,需改用手动验证模式,修改证书配置如下:
之后在GCP控制台获取证书对应的TXT验证记录,手动添加到你的DNS服务商后台,等待证书颁发。managed: { domains: ["*.example.com"], manualAuthorization: {}, } - 实例组地址需替换为你实际的GCP实例组
selfLink,可通过gcloud compute instance-groups describe your-group-name --zone your-zone命令获取。
内容的提问来源于stack exchange,提问作者Owen C
相关产品推荐
相关产品推荐

