2011-01-27 14 views
8

के साथ काम करने के लिए एसएसएल प्राप्त करने में समस्याएं मैं अमेज़ॅन एडब्ल्यूएस .NET SDK v1.2.1 का उपयोग कर रहा हूं।अमेज़ॅन एस 3 एसएस एसडीके

निम्नलिखित कोड myBucket.more.https जो स्पष्ट रूप से नहीं है के लिए एक DNS लुकअप विफल होने के बाद एक अपवाद फेंकता है अगर मैं ServiceURL फेंक देता है के सामने से 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); 
     } 
    } 
} 

देख जाना चाहिए के साथ एक वेब अपवाद:

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

तो मुझे लगता है कि कर रहा हूँ एसएसएल काम कर पाने के लिए? , यह मैं CreateAmazonS3Client के लिए एक कस्टम S3Config उत्तीर्ण नहीं होते हैं

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

अद्यतन

:

एक ही रास्ता मैं अब तक प्रबंधित किया है निम्नलिखित है, जो सुरक्षित नहीं है के साथ है

"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

सर्विस यूआरएल https:// के सामने होना चाहिए। यह Communication प्रोटोकॉल के लिए HTTPS के रूप में डिफ़ॉल्ट सेटिंग है। यही कारण है कि जब आप सेटिंग्स को मैन्युअल रूप से सेट नहीं करते हैं तो आपको वही त्रुटि मिलती है।

अद्यतन

यूरोपीय संघ बाल्टी नाम पर पूर्णविराम (।) को शामिल नहीं कर सकते हैं HTTPS का उपयोग करना चाहते हैं।

+0

बाल्टी घंटे पहले बनाया गया था, और अगर मैं एसएसएल बंद करता हूं तो पूरी तरह से काम करता है। डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ मुझे मिलता है: "अंतर्निहित कनेक्शन बंद था: एसएसएल/टीएलएस सुरक्षित चैनल के लिए ट्रस्ट रिलेशनशिप स्थापित नहीं कर सका। रिमोट सर्टिफिकेट सत्यापन प्रक्रिया के अनुसार अमान्य है।" – Tim

+0

हालांकि मुझे लगता है कि अभी भी DNS पर डाउन हो सकता है, इसे प्रमाण पत्र से मेल खाना पड़ेगा! – Tim

+0

@ जिम - क्या आपने फिडलर जैसे टूल के साथ तार भरने के अनुरोधों को देखने का प्रयास किया है? –