2015-04-11 1 views
6

Я использую Java API для загрузки и загрузки файлов в Amazon S3. Он работал отлично до недели назад, и он просто прекратил работать вообще, хотя я не коснулся кода. Мне интересно, есть ли решение для этого. Благодаря!SSLHandshakeException при использовании AWS SDK для Java API

Более вот код, который работал отлично:

AWSCredentials credentials = new BasicAWSCredentials(ACCESSKEYID, SECRETKEY); 
AmazonS3Client s3client = new AmazonS3Client(credentials); 
List<String> bucketList = new ArrayList<String>(); 
    for (Bucket bucket : s3client.listBuckets()) { 
     System.out.println(bucket.getName()); 
    } 

А вот ошибка:

Apr 11, 2015 9:44:12 PM com.amazonaws.http.AmazonHttpClient executeHelper 
INFO: Unable to execute HTTP request: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) 
at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1904) 
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:279) 
at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:273) 
at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1446) 
at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:209) 
at sun.security.ssl.Handshaker.processLoop(Handshaker.java:901) 
at sun.security.ssl.Handshaker.process_record(Handshaker.java:837) 
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1023) 
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1332) 
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1359) 
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1343) 
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:534) 
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:402) 
at com.amazonaws.http.conn.ssl.SdkTLSSocketFactory.connectSocket(SdkTLSSocketFactory.java:118) 
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:178) 
at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:304) 
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:610) 
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:445) 
at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:863) 
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) 
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57) 
at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:685) 
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:460) 
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:295) 
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3736) 
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3686) 
at com.amazonaws.services.s3.AmazonS3Client.listBuckets(AmazonS3Client.java:688) 
at com.amazonaws.services.s3.AmazonS3Client.listBuckets(AmazonS3Client.java:696) 
at keymanager.service.AWSAPI.getBucketList(AWSAPI.java:130) 
at keymanager.view.KeyManager.initializeBucketList(KeyManager.java:59) 
at keymanager.view.KeyManager.connectButtonActionPerformed(KeyManager.java:626) 
at keymanager.view.KeyManager.access$1000(KeyManager.java:22) 
at keymanager.view.KeyManager$12.actionPerformed(KeyManager.java:425) 

я сделал несколько исследований, и некоторые из них предположили, что эта проблема может быть с разрешениями. Однако, я думаю, что я следовал инструкциям здесь: http://docs.aws.amazon.com/AWSToolkitEclipse/latest/GettingStartedGuide/tke_setup_creds.html#d0e387, а также мог. Я действительно застрял, ребята. Спасибо, и любая помощь вообще будет оценена!

ответ

2

У меня была такая же проблема. Решение оказалось неправильной датой устройства. Постарайтесь обновить дату своего устройства. Причина в том, что сертификаты SSL имеют дату выпуска/истечения срока действия, которые проверяются на дату вашего устройства.

0

У меня возникла аналогичная проблема. Моя проблема заключалась в том, что я пометил конфигурацию прокси-сервера в файле beans xml, как указано ниже.

<bean id="clientConfiguration" class="com.amazonaws.ClientConfiguration"> <property name="proxyHost" value="proxy.server.com"/> <property name="proxyPort" value="8080"/> </bean>

Но забыли установить свойство.

После ввода протокола он начал работать

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