Amazon S3 错误 - 无法建立 SSL/TLS 安全通道的信任关系

Dom*_*rre 5 c# asp.net-mvc amazon-s3 appharbor

我正在使用 Amazon .NET SDK,并且从我的 ASP.NET MVC 应用程序添加文件在我的开发计算机上工作正常,当我部署应用程序(在AppHarbor上)时,出现以下错误:

无法建立 SSL/TLS 安全通道的信任关系。

这是我正在使用的代码:

var config = new Amazon.S3.AmazonS3Config();
config.CommunicationProtocol = Amazon.S3.Model.Protocol.HTTPS;

using (var client = Amazon.AWSClientFactory.CreateAmazonS3Client("key", "secret", config))
{
  var putRequest = new Amazon.S3.Model.PutObjectRequest();
  putRequest.BucketName = "media.bunkerapp.com";
  putRequest.CannedACL = Amazon.S3.Model.S3CannedACL.PublicRead;
  putRequest.ContentType = file.ContentType;
  putRequest.InputStream = file.InputStream;
  putRequest.Key = "mykey";

  Amazon.S3.Model.S3Response response = client.PutObject(putRequest);
  response.Dispose();
}
Run Code Online (Sandbox Code Playgroud)

我知道欧盟存储桶不能包含 .,如这个问题所示,但我使用的是美国标准存储桶。再次强调,这里的问题是它无法在 AppHarbor 上运行。我尝试回滚到 1 个实例应用程序,但它抛出了相同的错误,这是堆栈跟踪:

  at Amazon.S3.AmazonS3Client.ProcessRequestError(String actionName, HttpWebRequest request, WebException we, HttpWebResponse errorResponse, String requestAddr, WebHeaderCollection& respHdrs, Type t)
   at Amazon.S3.AmazonS3Client.Invoke[T](S3Request userRequest)
   at Amazon.S3.AmazonS3Client.PutObject(PutObjectRequest request)
   at MyController...
Run Code Online (Sandbox Code Playgroud)

任何指针将不胜感激。

run*_*sen 3

我无法在本地或 AppHarbor 上重现此问题。我正在使用类似的代码、存储桶名称(在美国)和最新的 AWS SDK。

我尝试降级到版本1.3.4.1并收到类似于您所描述的错误(“根据验证程序,远程证书无效”)。

升级到最新版本的 AWS SDK for .NET(当前1.4.3.0)可能是解决方案。