为 Google App Engine 创建 PEM 公钥

为 Google App Engine 创建 PEM 公钥

我经营着一家小公司,不幸的是我的 IT 支持刚刚辞职。我在 GAE 上运行一个网站。我的 SSL 已过期,我订购了新的 SSL,收到了以下文件:

  • SHA-1 文件夹中有 3 个 .cer 文件
  • SHA-2 文件夹中有 3 个 .der 文件
  • csr.txt 文件
  • privatekey.txt 文件

我需要上传到 Google App Engine,它要求:

  • PEM 编码的 X509 证书
  • 未加密的 PEM 编码 RSA 私钥

我在 Mac OS 上工作。我尝试使用 openssl,似乎已从 privatekey.txt 源生成了一个 private.pem 文件,但是当我在 csr.txt 文件上运行 openSSL 命令时,我得到:

$ openssl x509 -in csr.txt -out public.pem
unable to load certificate
23137:error:0906D06C:PEM routines:PEM_read_bio:no start line:/SourceCache/OpenSSL098/
  OpenSSL098-52.8.1/src/crypto/pem/pem_lib.c:648:Expecting: TRUSTED CERTIFICATE

csr.txt 文件以 开始-----BEGIN CERTIFICATE-----,以 结束,-----END CERTIFICATE-----中间只包含密钥。

答案1

此命令不起作用:openssl x509 -in csr.txt -out public.pem。您需要生成签名请求或 CSR。

要创建新的签名请求,请执行以下操作:

openssl req -key privatekey.txt -keyform PEM -days 365 -out example-com.req.pem

有关更多详细说明,请参阅如何在 Mac OS X 中轻松创建 SSL 证书并在 Apache2 中对其进行配置?专注于 CSR,不要太担心 Apache 之类的事情。

您可以使用以下方式检查签名请求:

openssl req -in example-com.req.pem -text -noout

没有命名要求。我碰巧使用site.type.encoding。 这里有些例子:

  • example-com.req.pem- 以 PEM 格式对 example.com 进行签名请求
  • example-com.req.der- 以 DER 格式对 example.com 进行签名的请求
  • example-com.cert.pem- PEM 格式的 example.com 证书
  • example-com.cert.der- example.com 的 DER 格式证书

这可能是一个争论点,但是...不要创建新密钥。只要现有密钥尚未被泄露,则可以使用现有密钥。

密钥连续性是比密钥轮换更理想的安全属性。密钥连续性还可以很好地与RFC 7469,HTTP 的主机公钥固定。如果你生成了一个新密钥,你实际上就破坏了 HPKP 和其他固定方案所使用的良好固定集。

根据您的安全状况,您可能会认为现有密钥可能因原 IT 管理员离职而受到损害。如果是这种情况,请生成新的密钥对。


此外,您还可以从以下网站获取免费的 1 类服务器证书星通证书颁发机构。我知道大多数(所有?)桌面和移动浏览器都信任 StartCom 证书。

相关内容