我正在使用Unity3D,并尝试使用S3 .NET SDK。但不断收到以下错误:AWS S3 .NET SDK
TlsException: Invalid certificate received from server. Error code: 0xffffffff80092012
Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.validateCertificates (Mono.Security.X509.X509CertificateCollection certificates)
Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.ProcessAsTls1()
我的JavaScript代码:
function Start()
{
client = Amazon.AWSClientFactory.CreateAmazonS3Client(Conf.AWSAccessKey, Conf.AWSSecretKey);
var response : ListBucketsResponse = client.ListBuckets();
}
我寻觅了整整一天可能已经找到了原因:
事实证明,单声道,没有根证书安装,所以默认情况下,Mono拒绝信任任何受SSL保护的Web服务。 The Mono Security FAQ对如何处理这一问题的夫妇建议“
我曾尝试以下方法:
-
mcs am1.cs mono am1.exe https://www.amazonaws.com
当我运行编译am1.exe,它给了我一个很多异常错误
使用mozroots.exe工具下载并安装所有Mozilla的根证书。
C:\Program Files (x86)\Mono-2.6.7\lib\mono\1.0>mozroots --import --machine --sync
尽管输出表示证书已成功导入。但在Unity3D仍然提示
“从服务器接收证书无效”我一直在这个整天,不能把它解决了,希望有人能帮助我。
什么是第一个版本,公司鲁德斯呢? – knocte
@knocte我不记得了,但它在2011年9月之前;-)要找到它,你需要跟踪github上的变化(当引入'MONO_X509_REVOCATION_MODE'时)并检查包含该提交的发布分支。 – poupou
谢谢,https://github.com/mono/mono/commit/231f4decce353eb21f4eaf0d6ed0ee7b1ef6268b所以2.8包括这个 – knocte