生成GCP兼容的Cloudflare SSL证书

安德烈斯

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

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

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

在GCP中输入证书和密钥时,单击“上传”后,将返回以下错误:

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

经过一番谷歌搜索后,我在GCP的文档中找到了以下资源,解释说我需要在certificate字段中上传完整的证书链所以下次我试过的事情,是Concat的从与CloudFlare的共同我的证书根证书的CloudFlare本身的,如GCP文档解释。因此,我运行了以下命令来创建此链:

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

...,然后将其上传到GCP的证书字段中。

即使如GCP docs所述私钥和证书链的校验和都匹配,也不能运行以下命令:

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

...并比较md5输出。

所以现在我完全没有Idea's。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

我发现此页面(缓存的页面)描述了Cloudflare的所有根证书和中间证书。我已经尝试了其中的一些来连接我的域证书,但是到目前为止还没有运气。还不清楚使用哪个...

更新2

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

我认为是这种情况,是因为我尝试使用cfsslcloudflare中工具自动“创建捆绑包证书”。我从跑步中得到的回应

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”来对密钥进行一些调整。

看到这个链接:https : //blog.woohoosvcs.com/2019/11/running-google-app-engine-behind-cloudflare/

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 Cloudflare SSL 证书 + nginx letencrypt 证书进行双重加密?

Cloudflare SSL 证书引发安全问题

如何查找通过Marklogic证书模板生成的SSL证书的私钥?

无法通过XAMPP生成SSL证书

使用SSL证书进行加密与生成的密钥

Python扭曲SSL的证书生成

生成现有SSL证书的私钥

GCP SSL证书安装错误“证书数据无效。请确保私钥和公共证书匹配

AWS弹性负载平衡器和Cloudfront哪种SSL证书是正确的证书?ssl证书兼容性

Google App Engine + Cloudflare 上的通配符 SSL 证书

通配符SSL证书,自定义域名和Cloudflare

具有GCP的kubernetes入口的多个域和SSL证书

在 GCP 负载均衡器上使用 ssl 证书

SSL证书颁发GoDaddy域,Heroku服务器托管,Cloudflare SSL

如何使用 OpenSSL 生成自签名 SSL 证书?

使用JDK中提供的keytool生成SSL证书

如何从Java生成,签名和导入SSL证书

生成SSL服务器的证书签名请求

Firebase Hosting生成的SSL证书不包括连接的域

为客户域生成 SSL 证书并与 Python Flask 集成

nginx入口-生成带有完整中间链CA证书的SSL证书时发生意外错误:无效的证书

Cloudflare SSL证书而不位于代理服务器下

如何使用Cloudflare SSL证书设置简单的https服务器?

SSL为银河上托管的流星应用程序生成证书签名请求(CSR)

使用客户端SSL证书并生成HTTP 403错误时,iOS 9中的错误

生成和管理SSL证书管理器kubernetes的简单方法?

使用letencrypt生成SSL证书失败,并显示“ 300-多项选择”

重新生成密钥操作后,Azure SSL 证书未同步

付费SSL证书与免费SSL证书