使用 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)