无停机配置Google Cloud负载均衡器及托管SSL证书问题咨询
迁移操作方案
核心问题解决逻辑
你遇到的所有问题本质上是混淆了HTTP-01和DNS-01证书验证的适用场景,不需要修改现有公网A记录就能完成证书签发和负载均衡预验证,完全可以实现无停机迁移。
具体操作步骤
- 方案一(最快,无需重新申请证书):直接上传你现有的wildcard PositiveSSL证书到Google Cloud
- 进入GCP「证书管理器」页面,选择「上传证书」
- 依次填入你的证书公钥、私钥、中间证书链,提交后即可完成证书导入,全程不需要任何验证操作
- 将导入的证书绑定到负载均衡的HTTPS前端配置中即可
- 方案二(使用Google托管SSL证书,无需改现有A记录):选择DNS-01验证方式签发证书
- 进入GCP「证书管理器」新建托管证书,填入你需要覆盖的所有域名(主域名、www子域名等,也可以直接填wildcard域名)
- 验证方式选择「DNS」,GCP会生成一条
_acme-challenge.你的域名.com的TXT解析记录 - 到cpanel的DNS管理页面添加这条TXT记录,等待1-10分钟GCP验证通过后证书即可自动签发,全程不影响现有A记录、MX记录等生效的解析配置
负载均衡预验证(不切公网流量即可测试)
证书绑定完成后,不需要修改公网DNS即可验证负载均衡是否正常运行:
- 修改本地电脑的hosts文件:
- Windows系统路径:
C:\Windows\System32\drivers\etc\hosts - macOS/Linux系统路径:
/etc/hosts
- Windows系统路径:
- 在hosts文件末尾添加一行:
[你的GCP负载均衡公网IP] 你的主域名.com www.你的主域名.com - 保存文件后,本地用浏览器访问网站、或者用curl命令测试,即可验证负载均衡的转发逻辑、SSL配置、后端服务是否正常,该修改仅在本地生效,不会影响公网用户访问
公网流量切换
本地验证所有功能正常后,再执行DNS切换:
- 先把当前指向Cloudfront的A/AAAA记录的TTL修改为5分钟,等待原TTL时长让旧缓存过期
- 将原来的Cloudfront Alias记录解绑,修改为指向GCP负载均衡公网IP的A记录
- 全程不需要修改MX记录、mail子域名等和邮件相关的解析配置,不会影响邮件服务正常运行
之前握手报错的原因排查
你之前测试子域名出现curl: (35) error:14084210:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure报错,是因为你绑定到负载均衡的证书没有包含该测试子域名,或者负载均衡的前端主机规则没有匹配该子域名的转发配置,按照上述步骤导入/签发覆盖所有需要用到的域名的证书,配置对应的转发规则即可解决。
内容的提问来源于stack exchange,提问作者FlyingPenguin
相关产品推荐
相关产品推荐

