Amazon S3 SDK for Java - 无法使listbuckets适用于https

时间:2015-01-22 23:57:39

标签: java ssl amazon-web-services amazon-s3

我有这个代码片段,它只是列出了存储桶。但是,我无法使用https。

这就是我的工作。

  • 为我的操作系统生成最新的根证书(RHEL 5.3)。
  • 将keytool导入我的信任库。
  • 使用以下标志

-Djavax.net.ssl.trustStore = path_to_key_store -Djavax.net.ssl.trustStorePassword = password_to_key_store

        BasicAWSCredentials credentials = new BasicAWSCredentials(username,  password);
        ClientConfiguration clientConfig = new ClientConfiguration();
        clientConfig.setConnectionTimeout(timeout);
        AmazonS3 s3 = new AmazonS3Client(credentials, clientConfig);
        s3.setEndpoint(url);

        for (Bucket bucket: s3.listBuckets()) {
            System.out.println("Bucket name::" + bucket.getName());
        }

我做错了什么?如何让https工作?

main, READ: TLSv1.2 Alert, length = 2
main, RECV TLSv1 ALERT:  fatal, handshake_failure
main, called closeSocket()
main, handling exception: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
main, IOException in getSession():  javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
main, called close()
main, called closeInternal(true)
main, called close()
main, called closeInternal(true)
Jan 22, 2015 2:55:40 PM com.amazonaws.http.AmazonHttpClient executeHelper
INFO: Unable to execute HTTP request: peer not authenticated
javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
at sun.security.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:397)
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:126)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:572)
at com.amazonaws.http.conn.ssl.SdkTLSSocketFactory.connectSocket(SdkTLSSocketFactory.java:118)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180)
at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:645)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:480)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
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:3714)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3664)
at com.amazonaws.services.s3.AmazonS3Client.listBuckets(AmazonS3Client.java:685)
at com.amazonaws.services.s3.AmazonS3Client.listBuckets(AmazonS3Client.java:693)
at AmazonS3ClientTester.main(AmazonS3ClientTester.java:23)

0 个答案:

没有答案