Amazon S3 выдает проблемы с получением SSL для работы с c # sdk - PullRequest
8 голосов
/ 27 января 2011

Я использую Amazon AWS .NET SDK v1.2.1.

Следующий код выдает исключение после сбоя поиска DNS для myBucket.more.https, что явно не то, что нужно искать ...

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);
        }
    }
}

Если я удаляю https:// с фронта ServiceURL, он выдает веб-исключение с:

"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,
};

UPDATE

Если я не передам пользовательский 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."

1 Ответ

7 голосов
/ 27 января 2011

ServiceUrl должен быть S3.amazonaws.com без https:// спереди. Это значение по умолчанию, как HTTPS для протокола Communication. Вот почему вы получаете ту же ошибку, когда не устанавливаете настройки вручную.

Обновление

В ведрах ЕС не должно быть точек (.) В имени, если вы хотите использовать HTTPS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...