2011-01-27 2 views
8

Я использую Amazon AWS .NET SDK v1.2.1.Amazon S3 выпускает SSL для работы с C# sdk

Следующий код генерирует исключение после проваливать 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."

ответ

6

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

Update

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

+0

Ведро было создано несколько часов назад и отлично работает, если отключить SSL. С настройкой по умолчанию я получаю: «Основное соединение было закрыто: не удалось установить доверительные отношения для защищенного канала SSL/TLS. Удаленный сертификат недействителен в соответствии с процедурой проверки». – Tim

+0

, хотя я думаю, что все еще может быть до DNS, он должен соответствовать сертификату! – Tim

+0

@Jim - Вы пробовали смотреть на запросы, проходящие через провод с помощью инструмента, такого как скрипач? –

Смежные вопросы