Amazon web services 文件上载到AWS S3会引发javax.net.ssl.SSLHandshakeException

Amazon web services 文件上载到AWS S3会引发javax.net.ssl.SSLHandshakeException,amazon-web-services,amazon-s3,file-upload,sslhandshakeexception,Amazon Web Services,Amazon S3,File Upload,Sslhandshakeexception,我正在尝试将文件上载到Amazon S3,出现以下错误: 原因:javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径生成失败:sun.security.provider.certpath.SunCertPathBuilderException:找不到请求目标的有效证书路径 我正在使用带有accessKey和secretKey的AmazonS3API。当我调用putObject()方

我正在尝试将文件上载到Amazon S3,出现以下错误: 原因:javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径生成失败:sun.security.provider.certpath.SunCertPathBuilderException:找不到请求目标的有效证书路径

我正在使用带有accessKey和secretKey的AmazonS3API。当我调用putObject()方法时,我得到了上面的错误。我还尝试下载在上可用的证书,并将证书导入truststore cacert,并在运行时引用truststore路径,但仍然得到相同的错误

-Djavax.net.ssl.trustStore=“$JAVA_HOME/jre/lib/security/cacerts”-Djavax.net.ssl.trustStorePassword=password

private void initializeeamazon(){
BasicAWSCredentials awsCreds=新的BasicAWSCredentials(accessKey、secretKey);
this.s3client=AmazonS3ClientBuilder.standard()
.具有凭证(新的AWSStaticCredentialsProvider(awsCreds))
.build();
}
私有void uploadFileTos3bucket(字符串文件名,文件名){
s3client.putObject(新的PutObjectRequest(bucketName、文件名、文件名)
.使用CanneDacl(CanneDaccessController.PublicRead));
}
原因:javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径生成失败:sun.security.provider.certpath.SunCertPathBuilderException:找不到请求目标的有效证书路径
位于sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
位于sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949)
位于sun.security.ssl.Handshaker.fatalSE(Handshaker.java:302)
位于sun.security.ssl.Handshaker.fatalSE(Handshaker.java:296)
位于sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1514)
位于sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:216)
位于sun.security.ssl.Handshaker.processLoop(Handshaker.java:1026)
位于sun.security.ssl.Handshaker.process_记录(Handshaker.java:961)
位于sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1062)
位于sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
位于sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
位于sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
位于org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:436)
位于org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:384)
位于com.amazonaws.http.conn.ssl.SdkTLSSocketFactory.connectSocket(SdkTLSSocketFactory.java:142)
位于org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142)
位于org.apache.http.impl.conn.poolghttpclientconnectionmanager.connect(poolghttpclientconnectionmanager.java:374)
... 省略30个公共框架
原因:sun.security.validator.validator异常:PKIX路径生成失败:sun.security.provider.certpath.SunCertPathBuilderException:找不到请求目标的有效证书路径
位于sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:387)
位于sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292)
位于sun.security.validator.validator.validate(validator.java:260)
位于sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324)
位于sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229)
位于sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124)
位于sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1496)
... 省略42个公共帧
原因:sun.security.provider.certpath.SunCertPathBuilderException:找不到请求目标的有效证书路径
位于sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)
位于sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)
位于java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)
位于sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:382)
... 省略48个公共帧

查看我已将证书添加到信任存储,但它仍然不工作查看我已将证书添加到信任存储,但它仍然不工作