AppEngine 上的 IA(中级授权机构)SSL 证书

AppEngine 上的 IA(中级授权机构)SSL 证书

我在 AppEngine 上有一个以某个域名运行的网站,SSL 工作正常。但是,我切换到另一个域名,SSL 却无法正常工作。

当我上传证书时,它会提示我输入“PEM 编码的 X.509”证书文件和“未加密的 PEM 编码的 RSA”私钥文件。

对于最后一个域名,我只需插入 CRT 和私钥即可。此密钥顶部显示“-----BEGIN PRIVATE KEY-----”,并不表示它是 RSA 密钥,但这并不重要。如果它很重要,我会使用命令行生成密钥/CSR:

openssl req -new -nodes -keyout abc.com.key -out abc.com.csr -newkey rsa:2048

但是,对于这个新域名,我将提供 CRT(实际上是 CRT 和 IA 按照该顺序连接起来)和密钥文件。密钥没有密码,它们似乎都是 PEM 格式的(标准的、编码的、ASCII 文件,对吧?)。

但是,我收到一条错误:“私钥和 SSL 证书都应该是未加密的 PEM 格式。”上次没有发生这种情况。

另一个网站说我需要运行以下命令来生成 AppEngine 可以使用的密钥:

openssl rsa -in abc.com.key -text > abc.com.key.pem

但是,我不知道这两种格式之间的区别,新文件的顶部有模数、指数、素数和系数,后面跟着“BEGIN RSA PRIVATE KEY BLOCK”。话虽如此,我现在可以上传原始 CRT 和这个新的密钥文件。

这是我的第一个问题(我不明白我在这里做什么)。

我的第二个问题是 IA 证书被忽略:AppEngine 指示我只上传了一个证书(我看到某处说它应该指示两个证书)。当我分别上传 IA 和新密钥时,我收到错误:“上传的私钥与 SSL 证书不匹配。请上传匹配的密钥。”

后者显然是更大的错误。我从 Python 收到一些 SSL 验证错误,但没有从浏览器收到。

我将非常感激有关此事的任何建议。

答案1

无论 Admin 的先前版本情况如何,如果它确实发生了变化,我们就必须运行上面的第二条命令(“openssl rsa -in abc.com.key -text > abc.com.key.pem”)。

我对所读内容的理解是错误的。只有当上传的是普通证书和 IA 证书的组合时,AppEngine 才会指示已占用一个证书槽。

AppEngine 应用更改(跨所有系统)也可能需要长达一小时的延迟。

我相信传播延迟与浏览器中的一些缓存相结合产生了相当不一致的结果。

使用“openssl s_client abc.com -servername abc.com”,我看到了更加真实的结果,并且还可以看到链中配置了两个证书,正如预期的那样。

相关内容