amazon-web-services - sam deploy 上的证书问题

标签 amazon-web-services ssl aws-lambda

我对 AWS Lambda 很陌生。我正在尝试使用 AWS SAM CLI 部署的项目。以下是我使用的命令:

sam deploy --s3-bucket com.nilay.bucket \
           --stack-name HelloWorldLambdaJava \
           --capabilities CAPABILITY_IAM

这最初因与 cloudformation.us-east-1.amazonaws.com 相关的 ssl 证书验证问题而失败证书。经过一番谷歌搜索后,我通过将证书导出到我的 mac 来绕过这个问题,将其转换为 .pem 格式并创建了一个变量 AWS_CA_BUNDLE .现在,另一个 url 的部署失败(s3.amazonaws.com?) for the same certificate issue. How can I add this certificate to the certifcate bundle. It seems like the variable AWS_CA_BUNDLE` 应该真正将信任库作为值,但我看到的所有文档都列出了一个 .pem 文件。

sam deploy 命令不允许 --no-verify-ssl像 AWS CLI 命令一样标记。

最佳答案

我做了两件事:
A)第一个问题是通过以下链接为我解决的。这是使用 PIP 和访问 AWS 服务的问题。
SSL CERTIFICATE_VERIFY_FAILED in aws cli
不幸的是,python 请求不使用任何操作系统的 CA 信任库。 https://github.com/requests/requests/issues/2966
您必须设置 REQUESTS_CA_BUNDLE 和 AWS_CA_BUNDLE 环境变量
https://github.com/bloomreach/s4cmd/issues/111#issuecomment-406839514
我正在从我的公司网络访问 AWS。在我自己的电脑上从家里连接时,我没有任何问题。
对我来说,解决方案是获取建立连接时使用的根证书,并将其作为 .PEM 文件保存在本地某处。
然后创建两个本地环境变量并将其指向 .PEM 文件。运行这些命令来设置环境变量(或手动设置):
setx AWS_CA_BUNDLE "C:\Users\UserX\Documents\RootCert.pem"
setx REQUESTS_CA_BUNDLE "C:\Users\UserX\Documents\RootCert.pem"
二)
我做的另一件事是更新 Python 证书 包裹。然后,我在 cacert.pem 文件中附加了我下载的 RootCert.pem 的内容。
C:\Python\Python38\Lib\site-packages\certifi\cacert.pem

关于amazon-web-services - sam deploy 上的证书问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61148178/

相关文章:

c# - 适用于 .NET 的 AWS 开发工具包 - IAmazonS3 不包含 'PutObject' 的定义

php - Amazon EC2 连接到另一个 EC2 EBS

amazon-web-services - AWS : How to programmatically create a RDS Aurora Cluster in Python/Boto3

java - SSL 套接字连接超时

.htaccess - 用于 SSL 插入 index.php 的 Codeigniter .htaccess 文件

amazon-web-services - 从 cloudwatch 日志组中的日志写入触发 lambda 函数

基于 Node.js 的 Express 应用程序在 ec2 微实例上速度极慢

amazon-web-services - AWS Cognito 用户池恢复选项 - CloudFormation 与控制台

java - SSL握手过程

amazon-web-services - 我应该将 Cognito 删除用户逻辑放在前端还是后端?