我最近更新了一个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-legacy2
和cert-lb-globalegacy3
,我如何删除它们?
这是不可能的?
唯一的解决方法似乎是:
- 创建一个新的target-https-proxy,在创建过程中省略ssl_certificates
- 用新的IP地址创建一个新的转发规则,使用新的target-https-proxy(因为转发规则似乎也是不可变的;不能使用现有的ip地址,因为它目前正在被不同的转发规则使用)
- 进入DNS并将每个子域重新指向新的IP地址
对于一个简单的任务(删除"classic"从不再需要它们的目标代理获得SSL证书)
由于您已经更新了目标https-proxy,您可以通过运行命令
来删除SSL证书gcloud compute ssl-certificates delete CERTIFICATE_NAME
--global
临时的解决方法是:
- 打开Cloud Shell并运行以下命令:
gcloud compute target-https-proxies export (Load_Balancer_Name) > /tmp/proxy
- 手动编辑/tmp/proxy文件,运行命令:
- cat /tmp/proxy
- 从文件中删除以下行:
sslCertificates:
https://www.googleapis.com/compute/v1/projects/...
删除行后,使用
‘CTRL + O’
保存文件,退出‘CTRL+X’
文件然后导入删除证书的文件
gcloud compute target-https-proxies import (Load_Balancer_Name) --source=/tmp/proxy
- 然后你就可以删除证书了
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