Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 JetS3t客户端putObject停止使用HTTPS主机名无效异常_Amazon S3_Amazon Web Services_Openssl_Jets3t - Fatal编程技术网

Amazon s3 JetS3t客户端putObject停止使用HTTPS主机名无效异常

Amazon s3 JetS3t客户端putObject停止使用HTTPS主机名无效异常,amazon-s3,amazon-web-services,openssl,jets3t,Amazon S3,Amazon Web Services,Openssl,Jets3t,基本put对象调用突然停止工作(有时成功)。它已经工作很久了 看起来像是SSL证书问题 堆栈跟踪代码段 org.jets3t.service.S3ServiceException: S3 PUT connection failed for '/s3_request_message-38afbd8e-7d65-428a-a708-5d34104ded95-4912660956668093023.xml' at org.jets3t.service.impl.rest.

基本put对象调用突然停止工作(有时成功)。它已经工作很久了

看起来像是SSL证书问题

堆栈跟踪代码段

   org.jets3t.service.S3ServiceException: S3 PUT connection failed for '/s3_request_message-38afbd8e-7d65-428a-a708-5d34104ded95-4912660956668093023.xml'
            at org.jets3t.service.impl.rest.httpclient.RestS3Service.performRequest(RestS3Service.java:516)
            at org.jets3t.service.impl.rest.httpclient.RestS3Service.performRestPut(RestS3Service.java:800)
            at org.jets3t.service.impl.rest.httpclient.RestS3Service.createObjectImpl(RestS3Service.java:1399)
            at org.jets3t.service.impl.rest.httpclient.RestS3Service.putObjectImpl(RestS3Service.java:1317)
            at org.jets3t.service.S3Service.putObject(S3Service.java:1661)
            at org.jets3t.service.S3Service.putObject(S3Service.java:1914)
            at com.amazon.lm.utils.aws.S3Box.putFile(S3Box.java:111)
            at com.amazon.lm.engine.LMEngine.copyRequestS3(LMEngine.java:350)
            at com.amazon.lm.engine.LMEngine.run(LMEngine.java:165)
            at com.amazon.lm.engine.discover.DiscoveryEngine.run(DiscoveryEngine.java:156)
            at com.amazon.lm.engine.discover.GoogleBaseSearch.run(GoogleBaseSearch.java:25)
            at com.amazon.lm.ui.UIDiscoverTask.run(UIDiscoverTask.java:41)
            at java.lang.Thread.run(Thread.java:662)
    Caused by: javax.net.ssl.SSLPeerUnverifiedException: HTTPS hostname invalid: expected 'lm-requests-prod.s3.amazonaws.com', received '*.s3.amazonaws.com'
            at org.apache.commons.httpclient.contrib.ssl.StrictSSLProtocolSocketFactory.verifyHostname(StrictSSLProtocolSocketFactory.java:293)
            at org.apache.commons.httpclient.contrib.ssl.StrictSSLProtocolSocketFactory.createSocket(StrictSSLProtocolSocketFactory.java:215)
            at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
            at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1361)
            at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
            at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
            at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
            at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
            at org.jets3t.service.impl.rest.httpclient.RestS3Service.performRequest(RestS3Service.java:342)
            ... 12 more
看起来Java不喜欢用“*.s3.amazonaws.com”表示的通配符域

每。。。java中的通配符可能有问题

但正如前面所说,我们已经使用它很长时间了,突然开始面对这个问题,这个问题太断断续续了

我们正在使用以下版本:

jdk: 1.6 
jets3: 0.7
openssl:1.0

有人面对过这个问题吗?如果是,有什么解决办法吗?

这不是AWSS3JavaClient代码的问题,因为这个问题发生在S3库和其他Java S3库中,而且
SSL证书验证是在JVM平台库代码中完成的,而不是在我们的S3库代码中完成的

问题是JVM的密钥库没有最新的证书颁发机构(CA),它允许JVM为我们从S3SSL端点获得的任何证书形成信任链。这是Java和SSL中相当常见的问题,因为JVM维护自己的密钥库(即,它不使用来自操作系统的证书)

如果遇到此问题,请尝试用其他JVM重现此问题。过去,每当客户看到这个问题时,都是因为他们的本地
JVM密钥库
(密钥库随JVM一起提供,包含最新的证书和CA)已经过时。在过去,升级到最新的JVM版本总是可以解决这个问题

尝试将您的
JVM版本升级到最新版本,这应该会有所帮助,因为您的密钥库必须已过期!:)