谷歌云功能上的客户端证书

时间:2019-07-16 11:30:44

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

从我的Google Cloud函数,我尝试请求另一个在测试环境中需要虚拟证书的api。所以我的服务器是这里的客户端。 有没有办法在Google Cloud功能中发送客户端证书?通过在设置的“证书”标签中上载证书,我设法使其在Postman中起作用,但是在Google Cloud函数中,我得到了

Bad Certificate

如果不可能,我该怎么办?改用Amazon可以解决问题,还是使用GAE?还是可以在环境变量中内联证书?我应该从Axios更改为可以阅读吗?我已经尝试过该解决方案,但收到错误消息:

routines:PEM_read_bio:no start line at Object.createSecureContext

1 个答案:

答案 0 :(得分:2)

从这个问题中我了解到,您的Cloud Function应该能够使用自定义证书对另一个服务进行HTTPS请求。

您的目标是将证书作为身份验证密钥提供给您的Cloud Function代码。此处讨论了以这种方式使用证书的情况:https://stackoverflow.com/a/53585725

您可以通过多种方法将证书文件添加到Cloud Function中:

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

选项2是最安全的做法的基础,并且可以通过工具https://github.com/GoogleCloudPlatform/berglas进行简化。