bg-tutorials

如何在 Google Cloud Platform 上安装 SSL 证书

本教程将介绍如何在Google Cloud Platform上使用Certificate Manager安装SSL证书。您还将学习如何为Google Cloud生成CSR(证书签名请求),以及如何将证书部署到HTTPS负载均衡器。

在Google Cloud Platform上生成CSR代码

没有CSR代码,您无法订购SSL证书。CSR代表证书签名请求(Certificate Signing Request),是一段包含申请人信息的编码文本块。证书颁发机构在签发证书之前会使用CSR来验证您的域名和组织信息。

Google Cloud没有内置的表单来为您创建CSR,因此您需要在自己的计算机上使用OpenSSL生成CSR及其私钥。您有两种选择:

请妥善保管私钥。当您将证书上传到Certificate Manager时,还会需要用到它。在订购过程中将CSR提交给证书颁发机构,证书签发后,请继续下面的安装步骤。

在Google Cloud Platform上安装SSL证书

在Google Cloud上,第三方(自行提供的)证书被称为自管理证书。您需要将其上传到Certificate Manager,然后部署到HTTPS负载均衡器。开始之前,请确保您已具备:

  • 从证书颁发机构获取的已签名证书文件。
  • 您在生成CSR时创建的私钥。
  • 可访问Google Cloud控制台和gcloud CLI。
  • 一个已存在的、为您的域名提供服务的HTTPS负载均衡器(带有目标HTTPS代理的外部应用负载均衡器)。证书将附加到此负载均衡器上。

步骤1:准备证书文件

证书颁发机构验证您的请求后,会通过电子邮件发送一个ZIP压缩包。解压该压缩包,查找以下文件:

  • yourdomain.crt,您的服务器证书。
  • yourdomain.ca-bundle,中间证书。
  • yourdomain.key,您在生成CSR时创建的私钥。

步骤2:合并证书和证书链

Certificate Manager需要一个PEM文件,其中先包含您的服务器证书,然后按顺序包含中间证书。在存放这些文件的文件夹中打开终端并运行:

cat yourdomain.crt yourdomain.ca-bundle > fullchain.crt

这样即可创建一个PEM格式文件,其中包含您的证书和按正确顺序排列的中间证书链。证书文件必须以—–BEGIN CERTIFICATE—–开头,并以—–END CERTIFICATE—–结尾。

现在检查私钥。Certificate Manager要求私钥必须:

  • 采用PEM格式且未加密(无密码短语)。
  • 采用PKCS#8格式,即以—–BEGIN PRIVATE KEY—–开头,而不是—–BEGIN RSA PRIVATE KEY—–。
  • 为RSA(2048、3072或4096位)或ECDSA(P-256或P-384)。

如果您的私钥以—–BEGIN RSA PRIVATE KEY—–(PKCS#1)开头,请将其转换为Certificate Manager接受的PKCS#8格式:

openssl pkcs8 -topk8 -nocrypt -in yourdomain.key -out yourdomain_pkcs8.key

在下面的上传步骤中使用生成的yourdomain_pkcs8.key。如果您的私钥受密码短语保护,此命令还会提示您输入密码短语,并生成一个未加密的副本。

步骤3:将证书上传到Certificate Manager

您可以通过控制台或使用gcloud上传自管理证书。任选其一即可,最终结果都是同一个Certificate Manager资源。

方式A,Google Cloud控制台:

  1. 登录Google Cloud控制台并选择您的项目。
  2. 打开Certificate Manager(位于网络安全区域的安全下),然后选择证书选项卡。
  3. 选择添加证书。
  4. 为证书命名,然后在证书类型中选择创建自管理证书。
  5. 对于位置,如果使用全球负载均衡器,请选择全球并将范围设置为默认;如果使用区域负载均衡器,请选择区域并选择您所在的区域。
  6. 上传fullchain.crt作为证书,上传您的PKCS#8私钥作为私钥,然后选择创建。

方式B,gcloud CLI:通过一条命令创建相同的证书。将MY_CERT替换为您选择的名称:

gcloud certificate-manager certificates create MY_CERT 
  --certificate-file=fullchain.crt 
  --private-key-file=yourdomain_pkcs8.key

无论采用哪种方式,此时证书已存储在Certificate Manager中,但尚未与任何流量关联。下一步将进行部署。

步骤4:将证书部署到负载均衡器

Certificate Manager通过证书映射(certificate map)来部署证书。您需要创建一个映射,添加一个将主机名指向您证书的条目,然后将该映射附加到负载均衡器的目标HTTPS代理上。请使用gcloud运行以下命令。

创建证书映射:

gcloud certificate-manager maps create MY_MAP

为您的主机名添加映射条目。将MY_CERT替换为您上传的证书名称,将yourdomain.com替换为您要保护的域名:

gcloud certificate-manager maps entries create my-entry 
  --map=MY_MAP 
  --certificates=MY_CERT 
  --hostname=yourdomain.com

将该映射附加到您现有的目标HTTPS代理上。将MY_PROXY替换为负责您负载均衡器前端的代理名称:

gcloud compute target-https-proxies update MY_PROXY 
  --certificate-map=MY_MAP 
  --global

如果您的负载均衡器是区域性的,请去掉--global标志并添加--region=YOUR_REGION。此时,负载均衡器已开始为该主机名的入站HTTPS流量提供您的证书服务。证书更改可能需要几分钟才能在负载均衡器上完全生效。

测试您的SSL安装

部署证书后,请确认负载均衡器正确提供了该证书,且证书链完整无误。在任何安装了OpenSSL的计算机上,连接到您的域名并读取其返回的证书:

echo | openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -issuer -subject -dates

此命令会打印当前使用证书的颁发者、主体以及有效期信息。如需获取有关证书及其配置的完整报告,包括证书链和协议检查,请使用我们的SSL检测工具检测您的域名,或在浏览器中打开该网站并查看锁形图标。

常见问题

我可以直接在Google Cloud中生成CSR吗?

不可以。Google Cloud没有可为自管理证书生成CSR或私钥的控制台表单。您需要在自己的计算机上使用OpenSSL创建CSR和私钥(或使用我们的CSR生成器),订购证书,然后将签发的证书和私钥上传到Certificate Manager。

自管理证书和Google管理证书有什么区别?

自管理证书是您从证书颁发机构获取并自行上传的证书,续期工作由您自己负责。Google管理证书则由Google自动配置和续期。本教程介绍的是自管理证书,这也是您使用SSL Dragon付费证书时所采用的方式。

为什么Certificate Manager拒绝我的私钥?

最常见的原因是密钥格式问题。Certificate Manager需要以—–BEGIN PRIVATE KEY—–开头的未加密PKCS#8密钥。如果您的密钥以—–BEGIN RSA PRIVATE KEY—–开头,或受密码短语保护,请使用openssl pkcs8 -topk8 -nocrypt -in yourdomain.key -out yourdomain_pkcs8.key进行转换,然后上传转换后的文件。

我已上传证书,但网站仍显示”不安全”,为什么?

将证书上传到Certificate Manager只是存储该证书,在您完成部署之前它不会用于处理流量。请创建证书映射,为您的主机名添加映射条目,并将该映射附加到负载均衡器的目标HTTPS代理上(步骤4)。在映射附加完成之前,负载均衡器不会展示您的证书。

证书文件应按什么顺序排列?

应先放置您的服务器(叶子)证书,然后依次放置中间证书,全部放在同一个PEM文件中。命令cat yourdomain.crt yourdomain.ca-bundle > fullchain.crt即可生成这种顺序。证书链缺失或顺序错误,是浏览器和SSL检测工具报告证书路径不完整的常见原因。

立即订购 SSL 证书, 可节省 10% 的费用!

快速发行, 强大加密, 99.99% 的浏览器信任度, 专业支持和 25 天退款保证. 优惠券代码 SAVE10

龙飞行的详细图像
撰写人

经验丰富的内容撰稿人, 擅长 SSL 证书. 将复杂的网络安全主题转化为清晰, 引人入胜的内容. 通过有影响力的叙述, 为提高数字安全作出贡献.

Avatar of Sergiu Rosca
Technical Review by Sergiu Rosca

Sergiu Rosca is the core web developer behind SSL Dragon. He manages the technical infrastructure, platform performance, and backend integrations that keep the site running smoothly and securely. At SSL Dragon, Sergiu shares practical insights on web development, site optimization, and technical troubleshooting.

All SSL Dragon installation guides are tested on live server environments and undergo a strict peer-review process to ensure your infrastructure remains secure. Read our full Editorial Policy.