gpt4 book ai didi

java - AWS Lambda 中的相互身份验证(2 路 SSL)

转载 作者:行者123 更新时间:2023-12-01 10:03:25 25 4
gpt4 key购买 nike

我正在为小型 PoC 构建 AWS Lambda 服务。 PoC 中的流程是:

  • 通过 POST 获取(文本)输入,
  • 执行小字符串操作 +
  • 将操纵值存储到 DynamoDB 中,然后
  • 通过 HTTP POST
  • 将相同的(操纵的)值发送到特定的 URL

    看起来像是一个简单的 lambda 教程示例,但对我来说棘手的部分是授权。我必须发布到的 URL 只允许通过 SSL 证书相互验证的请求。我怎样才能在 Lambda 中实现这一点?

    我找不到足够的答案来完成这项工作。我查看了使用 AWS API 网关 2-way ssl 证书选项。但是,为此,我需要将接收部分证书安装到证书存储中。甚至可能吗?还是唯一的方法是使用微型 EC2 盒子?

    在 Lambda,我可以使用 Node.JS、Java 或 Python。

    最佳答案

    如何在 AWS Lambda 中实现双向 TLS?
    Hakky54 为这个关于双向 TLS 的优秀教程首先鼓掌。
    https://github.com/Hakky54/mutual-tls-ssl
    我按照他的教程了解和实现 AWS Lambdas 的 MTLS。您还可以在部署到 AWS 之前在本地测试您的实现,只需运行 spring-boot 应用程序即可节省大量时间。
    步骤(所有命令都记录在上面的链接中)

  • 导出服务器证书并将其导入客户端信任库
  • 加载您的客户端 key 存储和信任存储,我将两者都保存在 s3 存储桶中
  • 创建 TLS 上下文
  • SSLContext sslContext = SSLContexts.custom()
    .loadKeyMaterial(keyStore, stores.getKeyStorePassword().toCharArray())
    .loadTrustMaterialtrustStore, (X509Certificate[] chain, String authType) -> true)
    .build();
  • 创建新泽西客户端
  • Client client = ClientBuilder.newBuilder()   
    .withConfig(new ClientConfig())
    .sslContext(sslContext.get())
    .trustStore(trustStore)
    .keyStore(keyStore, keyStorePassword)
    .build();
  • 调用 API
  • client.target(endpoint).get();
    我将我的 keystore 凭据存储在参数存储中。

    关于java - AWS Lambda 中的相互身份验证(2 路 SSL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42618931/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com