【问题标题】:Client certificate on google cloud functions谷歌云功能上的客户端证书
【发布时间】:2019-11-25 03:09:50
【问题描述】:

从我的谷歌云功能,我尝试在测试环境中请求另一个需要虚拟证书的 api。所以我的服务器是这里的客户端。 有没有办法在谷歌云功能中发送客户端证书?通过在设置的证书选项卡中上传证书,我设法使其在 Postman 中工作,但在谷歌云功能中我得到了

Bad Certificate

如果不可能,我该如何继续?改用亚马逊会解决问题,还是使用 GAE?或者是否可以在环境变量中内联证书?我应该从 Axios 更改以使其可以阅读吗?我已经尝试过该解决方案,但得到了错误:

routines:PEM_read_bio:no start line at Object.createSecureContext

【问题讨论】:

  • 嗨@Mike,你能接受Grayside 的回复吗?它将使其更加明显,并在您找到解决方案时帮助遇到相同问题的人。谢谢!

标签: google-cloud-platform ssl-certificate axios google-cloud-functions


【解决方案1】:

我从问题中了解到,您的 Cloud Function 应该能够使用自定义证书向其他服务发出 HTTPS 请求。

您的目标是让您的云函数代码可以使用证书作为身份验证密钥。这里稍微讨论一下以这种方式使用证书:https://stackoverflow.com/a/53585725

您可以通过多种方式将证书文件导入 Cloud Function:

  1. 在部署时上传:您可以将证书包含在您的 GCF 部署文件中,方法是将它们包含在您的代码目录中。请注意,您可能希望在部署之前使用 Cloud KMS 之类的东西进行加密,然后解密并保存在内存中以供使用。
  2. 上传到 GCS:在这种方法中,您将证书文件上传到 Cloud Storage 存储桶,然后在您的函数实例启动时加载该文件。
  3. 加载到环境变量中:如果您的证书数据的大小可以放入一个变量中,这是一个不错的选择,但具有更大的安全风险。在这种情况下一定要加密。

选项 2 具有最安全实践的基础,并由工具 https://github.com/GoogleCloudPlatform/berglas 提供便利。

【讨论】:

  • 这是正确的,我面临的问题是环境变量格式有问题。唯一的解决方案是对其进行 base64 编码,然后对其进行解码。但是,如果我们决定搬家,在 poc 完成后,其他两个建议可能会有用。正如我在问题中所写,这仅用于测试目的,因此环境变量是我现在正在寻找的解决方案。
猜你喜欢
  • 2018-07-15
  • 2018-03-26
  • 1970-01-01
  • 2019-07-07
  • 1970-01-01
  • 1970-01-01
  • 2018-12-11
  • 2020-07-12
  • 2016-03-21
相关资源
最近更新 更多