是否可以从目标 https-proxy 中删除"classic" ssl 证书?



我最近更新了一个target-https-proxy以使用证书映射:

$ gcloud compute target-https-proxies list
NAME                             SSL_CERTIFICATES                             URL_MAP           CERTIFICATE_MAP
lb-global-legacy-target-proxy-2  cert-lb-global-legacy2,cert-lb-globalegacy3  lb-global-legacy  cert-map-1

我的问题是:由于cert-map-1不再需要cert-lb-global-legacy2cert-lb-globalegacy3,我如何删除它们?

这是不可能的?

唯一的解决方法似乎是:

  1. 创建一个新的target-https-proxy,在创建过程中省略ssl_certificates
  2. 用新的IP地址创建一个新的转发规则,使用新的target-https-proxy(因为转发规则似乎也是不可变的;不能使用现有的ip地址,因为它目前正在被不同的转发规则使用)
  3. 进入DNS并将每个子域重新指向新的IP地址

对于一个简单的任务(删除"classic"从不再需要它们的目标代理获得SSL证书)

由于您已经更新了目标https-proxy,您可以通过运行命令

来删除SSL证书
gcloud compute ssl-certificates delete CERTIFICATE_NAME 
--global

临时的解决方法是:

  1. 打开Cloud Shell并运行以下命令:

gcloud compute target-https-proxies export (Load_Balancer_Name) > /tmp/proxy
  1. 手动编辑/tmp/proxy文件,运行命令:
- cat /tmp/proxy
  1. 从文件中删除以下行:
sslCertificates:
https://www.googleapis.com/compute/v1/projects/...
  1. 删除行后,使用‘CTRL + O’保存文件,退出‘CTRL+X’文件

  2. 然后导入删除证书的文件

gcloud compute target-https-proxies import (Load_Balancer_Name) --source=/tmp/proxy
  1. 然后你就可以删除证书了
gcloud compute ssl-certificates delete <certificate name> 

可以使用带有--clear-ssl-certificates标志的update命令

的例子:

gcloud compute target-https-proxies update PROXY_NAME --global --clear-ssl-certificates

将删除经典证书,但保留证书映射。

文档链接:https://cloud.google.com/sdk/gcloud/reference/compute/target-https-proxies/update——clear-ssl-certificates