버킷 목록을 검색하는 데 사용되는 기본 Amazon S3 SDK 코드 스 니펫이 있습니다. 서버는 TLSv1.2 만 수락하도록 구성됩니다. TLS v1.2 요청을 보내도록 클라이언트를 구성 할 수 없습니다. 디버깅은 클라이언트가 항상 TLSv1을 보내고 있음을 보여줍니다. 시스템 속성 설정을 시도했지만 그 중 하나가 작동하지 않습니다.Java 용 Amazon S3 SDK - TLSv1.2 구성
-Dhttps.protocols = TLSv1.2
BasicAWSCredentials credentials = new BasicAWSCredentials(username,password);
AmazonS3 s3 = new AmazonS3Client(credentials);
final String serviceurl = "https://ip:port";
s3.setEndpoint(serviceurl);
S3ClientOptions s3ClientOptions = new S3ClientOptions();
s3ClientOptions.setPathStyleAccess(false);
s3.setS3ClientOptions(s3ClientOptions);
for (Bucket bucket: s3.listBuckets()) {
System.out.println("Bucket name::" + bucket.getName());
}
내가 무슨 말이냐? TLSv1.2 요청을 항상 보내도록 코드를 구성하려면 어떻게해야합니까? AWS SDK 1.7.25를 사용하고 있습니다. 당신의 도움을 주셔서 감사합니다.
이 문제의 근본 원인을 발견했습니다. Amazon S3 SDK는 -Dcom.amazonaws.sdk.disableCertChecking = true가 설정된 경우 항상 TLS를 사용합니다. 나는이 깃발을 사용하고 있었다. 내가 해체하면 TLSv1.2가 사용됩니다. – user3566773