本教程介绍如何为 Google App Engine 生成 CSR(证书签名请求)。由于 GAE 会自动配置由 Google 管理的 SSL 证书(由 Google Trust Services 或 Let’s Encrypt 签发),因此只有在您计划上传自己的证书时才需要生成 CSR,例如来自商业证书颁发机构的 OV、EV 或通配符证书。
GAE 没有内置的 CSR 生成器,因此您需要在平台外使用 OpenSSL 创建 CSR。您可以在 Google Cloud Shell(可从 Cloud Console 访问)中运行相关命令,或在任何已安装 OpenSSL 的本地计算机上运行。
在 Google App Engine 上生成 CSR
您有两种选择:
- 使用我们的 CSR 生成器 自动创建 CSR 和私钥。
- 按照下面的手动步骤使用 OpenSSL 生成 CSR。
步骤 1:打开终端
如果您使用的是 Google Cloud Shell,请打开 Cloud Console,选择您的项目,然后点击右上角工具栏中的 Activate Cloud Shell 按钮。终端会话会在页面底部打开,并处于您的主目录(/home/your-username)中。
在本地计算机上,打开任何可以使用 OpenSSL 的终端(Linux、macOS 终端,或安装了 OpenSSL 的 Windows)。
步骤 2:运行 OpenSSL 命令
运行以下命令,一步生成新的 RSA-2048 私钥和 CSR。Google App Engine 要求使用 RSA-2048 密钥;不支持更大的密钥长度(3072、4096)以及 ECC 密钥。
openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr
将 yourdomain 替换为您的实际域名。该命令会创建两个文件:
- yourdomain.key,您的私钥。请妥善保管此文件;在将证书上传到 GAE 时您会需要用到它。
- yourdomain.csr,您的证书签名请求。
步骤 3:填写 CSR 字段
OpenSSL 会提示您输入若干字段。请按照以下示例输入信息:
- 国家名称(2字母代码):您的组织合法注册所在国家的 ISO 国家代码,例如 US。
- 省/州名称:省或地区的全称,例如 California。
- 城市名称:您组织所在的城市,例如 San Francisco。
- 组织名称:您公司的法定名称。对于域名验证证书,此值不会被验证,但请不要直接按回车键:这样 OpenSSL 会填入其配置中定义的默认值,而标准的 openssl.cnf 自带的默认值是 Internet Widgits Pty Ltd,这将出现在您的 CSR 中。请输入一个句点(
.)以使该字段真正保持为空。 - 组织单位名称:留空(此字段已被弃用,CA 会忽略它)。
- 通用名称:您要保护的完全限定域名(FQDN),例如 yourdomain.com。对于通配符证书,请输入 *.yourdomain.com。
- 电子邮件地址:可选。您可以将其留空。
- 质询密码/可选公司名称:直接按回车键跳过这两个字段。
步骤 4:提交 CSR
打开 CSR 文件,复制全部内容,包括 -----BEGIN CERTIFICATE REQUEST----- 和 -----END CERTIFICATE REQUEST----- 这两行:
cat yourdomain.csr
在申请 SSL 证书时,将 CSR 文本粘贴到订单表单中。您也可以在提交之前使用我们的 CSR 解码器 验证您的 CSR。
在证书颁发机构验证您的请求并签发证书后,继续将其上传到 Google App Engine。
将 SSL 证书上传到 Google App Engine
从 CA 收到证书文件后(通常是一个 .crt 文件和一个 .ca-bundle 或中间证书文件),您可以通过 Google Cloud Console 或 gcloud CLI 上传它们。
选项 A:Google Cloud Console
- 打开 Google Cloud Console,然后导航到 App Engine > Settings > SSL certificates。
- 点击 Upload a new certificate。
- 将证书文件(.crt)的内容粘贴到 PEM encoded X.509 public key certificate 字段中。如果您的 CA 提供了单独的中间证书包,请将其附加在同一字段中证书内容的下方。
- 将您的私钥(yourdomain.key)内容粘贴到 Unencrypted PEM encoded RSA private key 字段中。
- 点击 Upload。Google 会验证这些文件,并在您的自定义域名上激活该证书。
选项 B:gcloud CLI
如果您更喜欢使用命令行,可以使用 gcloud CLI 创建证书:
gcloud app ssl-certificates create
--display-name="My SSL Certificate"
--certificate=/path/to/yourdomain_fullchain.crt
--private-key=/path/to/yourdomain.key
--certificate 标志需要一个 PEM 文件,其中包含您的服务器证书,后接中间证书链。--private-key 标志指向您未加密的 RSA 私钥文件。
上传完成后,将证书映射到您的自定义域名:
gcloud app domain-mappings update yourdomain.com
--certificate-id=CERT_ID
将 CERT_ID 替换为上一条命令返回的证书 ID,并将 yourdomain.com 替换为您的实际域名。
要确认证书已激活并正确安装,请使用我们的 SSL 检测工具 扫描您的域名。


