gpt4 book ai didi

google-app-engine - 生成 GCP 兼容的 Cloudflare SSL 证书

转载 作者:太空宇宙 更新时间:2023-11-03 13:30:52 24 4
gpt4 key购买 nike

我正在尝试为 Google Cloud 的 App Engine 配置 SSL。您可以在 GCP 中上传您自己的自定义 SSL 证书 + 私钥(参见 screenshot )。

我将 Cloudflare 用于 DNS,并希望在 Cloudflare 中使用“完整(严格)”SSL 策略。这意味着我必须在 GCP 中添加由 Cloudflare 创建的证书和 key (在同一屏幕截图中)。

我已设法将私钥转换为 GCP 可接受的有效 (PEM) 格式。唯一不起作用的是证书部分。

在 GCP 中同时输入证书和 key 时,点击上传后,返回以下错误:

The certificate data is invalid. Please ensure that the private key and public certificate match.

谷歌搜索后,我找到了以下资源 on GCP's documentation ,解释说我需要在证书字段中上传完整的证书链。所以接下来我尝试的是 concat 我来自 cloudflare 的证书以及 root certificate cloudflare 本身,如 GCP 文档中所述。所以我运行了以下命令来创建这个链:

cat domain.crt cloudflare-root-ca.crt > concat.crt

... 并在证书字段中的 GCP 中上传了那个。

这也不起作用,即使私钥和证书链的校验和都匹配为 explained by GCP docs ,通过运行:

openssl x509 -noout -modulus -in concat.crt | openssl md5
openssl rsa -noout -modulus -in myserver.key.pem | openssl md5

...并比较 md5 输出。

所以现在我完全没有Idea了。 GCP 的错误消息仅限于上述一种,另一种是说您的 PK 格式无效。

通过 CLI (gcloud) 尝试时出现同样的问题

当通过 cli gcloud 尝试这个过程时,我们得到了同样的错误。尝试以下命令:

gcloud app ssl-certificates create --display-name example.com --certificate ./cloudflare-concat.crt  --private-key cloudflare-pk.key

...产生以下错误:

ERROR: (gcloud.app.ssl-certificates.create) 
INVALID_ARGUMENT: Invalid certificate.
`CertificateRawData` must contain a PEM encoded x.509 public key certificate, with header and footer included,
and an unencrypted PEM encoded RSA private key, with header and footer included and with size at most 2048 bits.
The requested private key and public certificate must match.

非常感谢任何有关在 GCP 中上传有效证书(来自 Cloudflare)和私钥的帮助。

更新1

我找到了这个 (cached) paged描述 Cloudflare 的所有根证书和中间证书。我已经尝试了其中的几个来再次连接我的域证书,但到目前为止还没有成功。也不清楚使用哪一个...

更新2

我开始认为这永远行不通。因为我使用的是来自 Cloudflare 的“原始证书”,所以我相信这是来自 Cloudflare 本身的自签名证书,这意味着 App Engine 永远不会将其识别为有效。

我认为是这种情况的原因是因为我尝试使用 cloudflare 的 cfssl 工具自动“创建 bundle-cert”。我从运行中得到的响应

cfssl bundle -cert domain.crt

返回以下结果:

[INFO] bundling certificate for {Country:[] Organization:[CloudFlare, Inc.] OrganizationalUnit:[CloudFlare Origin CA] Locality:[] Province:[] StreetAddress:[] PostalCode:[] SerialNumber: CommonName:CloudFlare Origin Certificate Names:[{Type:2.5.4.10 Value:CloudFlare, Inc.} {Type:2.5.4.11 Value:CloudFlare Origin CA} {Type:2.5.4.3 Value:CloudFlare Origin Certificate}] ExtraNames:[]}
{"code":1220,"message":"x509: certificate signed by unknown authority"}

额外信息

  • 我正在使用免费的 Cloudflare 订阅。
  • 使用 Cloudflare 的“灵活”设置时一切正常,
  • 但我想使用“完全(严格)”设置

最佳答案

我最近发现了一篇博文,描述了如何解决这个问题。按照描述的步骤操作后,证书在 Google Cloud 中被接受,并且在 cloudflare 中的“完整(严格)ssl”选项一切正常!

简而言之:如博文中所述,它涉及通过手动向其添加“RSA”来对 key 进行一些调整。

请参阅此链接: https://blog.woohoosvcs.com/2019/11/running-google-app-engine-behind-cloudflare/

编辑:这可能与使用@Andrei 描述的 shell 命令的最终结果相同

关于google-app-engine - 生成 GCP 兼容的 Cloudflare SSL 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55358946/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com