使用 Google Cloud Load Balancer 设置 SSL 证书

Posted

技术标签:

【中文标题】使用 Google Cloud Load Balancer 设置 SSL 证书【英文标题】:Setting up an SSL cert with Google Cloud Load Balancer 【发布时间】:2019-04-28 02:57:27 【问题描述】:

我正在尝试使用我通过证书颁发机构生成的证书 (PositiveSSL) 为 SSL 设置谷歌云负载平衡器。

通过谷歌云外壳,这是我生成密钥的方式:

openssl genrsa -out my-key.key 2048

以下是我生成 CSR(证书签名请求)的方式:

openssl req -new -key my-key.key -out my-csr.csr

然后我使用CSR从证书颁发机构获取SSL证书,我收到以下两个文件:

    my-crt.crt my-ca-bundle.ca-bundle

总之,我有以下四个文件:

    my-key.key my-csr.csr my-crt.crt my-ca-bundle.ca-bundle

下图是在 Google Cloud Load Balancer 中创建 SSL 证书的表格:

您能否告诉我哪些信息在哪里(从我可以使用的文件中)。我没有任何.pem 格式的文件。

【问题讨论】:

【参考方案1】:

my-crt.crt 是公钥证书

my-key.key 是您证书的私钥

my-ca-bundle.ca-bundle 是您的证书链

打开这些文件,将内容复制并粘贴到表单中。

这在 "Creating and Using SSL Certificates" 的 GCP 文档中根据文档在 "Creating an SSL certificate resource from existing certificate files" 部分下进行了描述

在公钥证书字段中,单击上传按钮 上传您的 .crt 文件或粘贴 .key 文件的全部内容 进入该领域,包括 -----BEGIN CERTIFICATE----- 和 -----END CERTIFICATE----- 包含文件内容。 在证书链字段中,单击上传按钮进行上传 您的 .csr 文件或将 .csr 文件的全部内容粘贴到 字段,包括 -----BEGIN CERTIFICATE REQUEST----- 和 -----END 包含文件内容的证书请求-----。 在“私钥证书”字段中,单击“上传”按钮以 使用之前生成的 .key 文件上传您的私钥。 例如,此文件使用 -----BEGIN RSA PRIVATE KEY----- 和 -----END RSA PRIVATE KEY----- 以附上文件内容。

【讨论】:

【参考方案2】:

您绝对可以从文件中复制粘贴。但是,如果您想创建一个 .pem 文件,那么我找到了this document that describes how to create a .pem File for SSL Certificate Installations。根据该文档,当将形成完整链的多个证书作为单个文件导入时,隐私增强邮件 (PEM) 文件是证书安装中经常使用的级联证书容器。您可以将其视为链式证书的分层容器。 .pem 文件是一种容器格式,可能只包含公共证书或整个证书链(私钥、公钥、根证书):

私钥 服务器证书(crt,公钥) (可选)中间 CA 和/或捆绑包(如果由第 3 方签名)

如何创建自签名 PEM 文件:

openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem

如何从形成链的现有证书文件创建 PEM 文件:

1) 按照下列步骤从私钥中删除密码(可选):

键入 openssl rsa -in server.key -out nopassword.key 并按 Enter。 输入私钥的密码。

2) 结合私钥、公共证书和任何第三方中间证书文件:

cat nopassword.key > server.pem cat server.crt >> server.pem

根据需要对第三方证书链文件、捆绑包等重复此步骤:

cat middle.crt >> server.pem

另外,我在How to create a .pem File for SSL Certificate Installations.上发现了另一篇服务器故障文章

【讨论】:

感谢您的替代选项。不过,复制和粘贴似乎更容易。

以上是关于使用 Google Cloud Load Balancer 设置 SSL 证书的主要内容,如果未能解决你的问题,请参考以下文章

使用 Google Cloud Load Balancer 迁移 App Engine 会导致约 1 小时的停机时间

配置 Google Cloud Load Balancer 路径规则

Google Cloud Load Balancer - 子域重定向到存储桶中的特定文件夹

将 Cloud Armor 与 Cloud Run 结合使用并避免绕过

Building Microservices with Spring Cloud - Load balancing

GCP - 无法在 Cloud Run 中使用 Google Secret Manager (@google-cloud/secret-manager)