【问题标题】:Google Cloud Platform gives PEM Error when using third party librariesGoogle Cloud Platform 在使用第三方库时出现 PEM 错误
【发布时间】:2023-01-16 22:30:28
【问题描述】:

首先让我说这当然适用于我的本地开发环境。

我对 Google Cloud Platform 还很陌生,因为我刚刚创建/上传了我的第一个项目。我有一个运行 NestJs 的节点应用程序。我使用 SendGrid 发送邮件,使用 Google Cloud Storage 存储我的文件。

添加 GCS 我创建了一个服务帐户并下载了包含我的密钥的 JSON 文件。我将这些密钥添加到我的.env 文件以及 GAE 上的构建触发器。

现在正如我所提到的,一切都在本地完美运行,这告诉我密钥工作正常。但是当上传到应用程序到 GAE 时,文件没有上传到 GCS,我的电子邮件甚至没有通过 SendGrid 发送。就好像所有第三方库都停止工作一样。查看日志时,我看到以下错误:

Error: error:0909006C:PEM routines:get_name:no start line at Sign.sign (internal/crypto/sig.js:110:29)

Error: error:0908F066:PEM routines:get_header_and_data:bad end line at Sign.sign (internal/crypto/sig.js:110:29)

这似乎有一个无效的私钥。但我使用的是从谷歌本身获得的私钥,所以这就是我被困的地方。

我不知道我是否错过了一步,或者我是否做的一切都完全错误?我需要在某处注册第三方软件吗?我的代码运行良好。 API 调用正在执行它们的工作,数据正在保存到数据库中。我只是不知道为什么没有发送电子邮件和没有上传文件。正如我提到的,我对 Google Cloud Platform 还是个新手,不太了解它。

有没有人可以指出正确的方向或从哪里开始寻找?有没有人遇到过类似或相同的问题?

我知道谷歌的错误有点奇怪,所以我什至不确定是否需要查看私钥。

【问题讨论】:

  • 显示您的代码以及您使用的密钥的第一行和最后一行。有多种密钥格式。您必须为您提供的密钥使用正确的函数和/或参数,或将密钥转换为函数支持的格式。由于您的问题没有显示您如何使用/提取私钥,您可能已经损坏了它。错误消息表明您的密钥已损坏。第一行应该是-----开始私钥-----.
  • 但是,服务帐户不仅仅是私钥部分。 JSON 密钥文件中还有其他必填字段。哪些取决于你在做什么。

标签: node.js google-cloud-platform google-cloud-storage nestjs


【解决方案1】:

我有一个非常相似的问题。 GCS 在本地工作,但当我在 Heroku 上托管我的网站时不起作用。

更有趣的是,我正在使用另一个网站将数据上传到 GCS,并且该网站在本地和 Heroku 上都可以正常工作!

我一直在通过谷歌搜索这个问题来解决这个问题但是zilch!

【讨论】:

    猜你喜欢
    • 2018-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-31
    • 1970-01-01
    • 1970-01-01
    • 2019-01-20
    • 1970-01-01
    相关资源
    最近更新 更多