gpt4 book ai didi

amazon-web-services - 如何在 ASP.NET (Core 2) Web 应用程序中访问来自 AWS 的认证?

转载 作者:行者123 更新时间:2023-12-03 16:28:18 24 4
gpt4 key购买 nike

我正在尝试将 ASP.NET Core 2 Web 应用程序部署到 AWS Elastic Beanstalk。

该应用程序实际上是 IdentityServer4,我需要访问一个证书来签名和验证 token 。

有一个教程如何为 Azure Web 应用程序配置证书的使用 HERE但我还没有发现 AWS 有类似的东西。

无论我搜索 AWS 及其证书,我总能找到有关 HTTPS 的 SSL/TLS 连接的文章和文档。我知道如何执行此操作并将单独执行此操作,我已经在 AWS Certificate Manager 中提供了一个证书,我可以在 Elastic Beanstalk 中为负载均衡器设置它,但 ACM 文档指出:

  • ACM 不提供 SSL/TLS 协议(protocol)以外的任何证书。
  • 您不能将 ACM 证书用于代码签名或电子邮件加密。

  • 因此,如果我想在我的代码中使用证书,似乎 ACM Cert 并不适用于此。

    我可以使用 OpenSSL 创建自签名证书,但我不知道从 Elastic Beanstalk 实例中的 ASP.NET Core 2 Web 应用程序访问它的最佳方式是什么。我无法将证书文件放在我的代码存储库中,我想以某种方式通过 AWS 将其注入(inject)环境,但我不知道在我的应用程序中的何处或如何访问它?

    最佳答案

    我也浪费了一些时间来寻找它。

    我最终做的是将证书的 base64 和证书密码存储在 Secrets Manager 中,并在启动时使用 Kralizek's AWSSecretsManagerConfigurationExtensions 在应用程序中读取.

    private X509Certificate2 CreateSigningCredential()
    {
    if (_signingCertificate != null)
    return _signingCertificate;

    var certBytes = Configuration.GetValue<string>("Auth:Certificate");
    if (string.IsNullOrEmpty(certBytes))
    {
    return null;
    }

    var password = Configuration.GetValue<string>("Auth:CertificatePassword");
    if (string.IsNullOrEmpty(password))
    {
    return null;
    }

    var certificate = Convert.FromBase64String(certBytes);
    _signingCertificate = new X509Certificate2(certificate, password);

    return _signingCertificate;
    }

    关于amazon-web-services - 如何在 ASP.NET (Core 2) Web 应用程序中访问来自 AWS 的认证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47306424/

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