【问题标题】:Amazon S3 issues getting SSL to work with c# sdkAmazon S3 问题让 SSL 与 c# sdk 一起工作
【发布时间】:2011-01-27 15:13:15
【问题描述】:

我正在使用 Amazon AWS .NET SDK v1.2.1。

以下代码在对myBucket.more.https 的 DNS 查找失败后引发异常,这显然不是它应该查找的内容...

AmazonS3Config S3Config = new AmazonS3Config()
{
    ServiceURL = "https://s3.amazonaws.com",
    CommunicationProtocol = Amazon.S3.Model.Protocol.HTTPS,
};

using (AmazonS3 client = Amazon.AWSClientFactory.CreateAmazonS3Client(accessKey,secretKey, S3Config))
{
    PutObjectRequest request = new PutObjectRequest();

    using (MemoryStream ms = new MemoryStream(inputBytes))
    {
        request.WithBucketName("myBucket.more")
                .WithKey(output.Name)
                .WithInputStream(ms);

        using (S3Response response = client.PutObject(request))
        {
                        Log.Message("File Sent: " + output.Name);
        }
    }
}

如果我从 ServiceURL 的前面删除 https://,它会引发 Web 异常:

"The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel."

那么我应该如何让 SSL 工作?

到目前为止,我管理的唯一方法是使用以下方法,这是不安全的:

AmazonS3Config S3Config = new AmazonS3Config()
{
    ServiceURL = "s3.amazonaws.com",
    CommunicationProtocol = Amazon.S3.Model.Protocol.HTTP,
};

更新

如果我没有将自定义 S3Config 传递给 CreateAmazonS3Client,它仍然会失败:

"The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel."

"The remote certificate is invalid according to the validation procedure."

【问题讨论】:

    标签: c# amazon-s3 amazon-web-services


    【解决方案1】:

    ServiceUrl 应该是S3.amazonaws.com,前面没有https://。这是HTTPS 对于Communication 协议的默认设置。这就是为什么当您不手动设置设置时会出现相同错误的原因。

    更新

    如果您想使用 HTTPS,欧盟存储桶的名称中不能包含句点 (.)。

    【讨论】:

    • 存储桶是几小时前创建的,如果我关闭 SSL,它可以完美运行。使用默认配置,我得到:“底层连接已关闭:无法为 SSL/TLS 安全通道建立信任关系。根据验证过程,远程证书无效。”
    • 虽然我猜这可能仍然取决于 DNS,它必须匹配证书!
    • @Jim - 您是否尝试过使用 fiddler 之类的工具查看通过网络传输的请求?
    • @Jim - 另一件事 - 如果名称中有句点(。)或大写字母,我认为欧盟的 SSL 存储桶不起作用。你没有这些是吗?
    • @geoff - 要使用路径样式存储桶,您必须使用 region specific endpoint。 S3 EU 区域有一个未发布的端点 s3-eu-west-1.amazonaws.com。我上传了一个示例图片:DNS style, SSL with path style
    猜你喜欢
    • 2012-02-29
    • 1970-01-01
    • 2011-08-13
    • 2012-12-11
    • 1970-01-01
    • 1970-01-01
    • 2021-06-13
    • 2018-07-31
    • 2019-02-20
    相关资源
    最近更新 更多