

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Java용 SDK에서 TLS 작업
<a name="security-java-tls"></a>

는 기본 Java 플랫폼의 TLS 기능을 AWS SDK for Java 사용합니다. 이 항목에서는 [Amazon Corretto 17](https://docs.aws.amazon.com/corretto/latest/corretto-17-ug/index.html)에서 사용하는 OpenJDK 구현을 사용한 예제를 보여줍니다.

를 사용하려면 기본 JDK AWS 서비스가 TLS 1.2의 최소 버전을 지원해야 하지만 TLS 1.3이 권장됩니다.

TLS 1.3은 추가 작업 또는 구성이 필요할 수 있는 포스트 양자 암호화를 활성화하기 위한 사전 조건입니다. 자세한 내용은 [ 하이브리드 포스트 양자 TLS 활성화를 참조하세요](https://docs.aws.amazon.com/sdkref/latest/guide/pqtls-details.html).

사용자는 SDK와 함께 사용 중인 Java 플랫폼의 설명서를 참조하여 기본적으로 활성화된 TLS 버전과 특정 TLS 버전을 활성화 및 비활성화하는 방법을 확인해야 합니다.

## TLS 버전 정보 확인 방법
<a name="how-to-check-the-tls-version"></a>

OpenJDK를 사용하는 다음 코드는 [SSLContext](https://devdocs.io/openjdk~17/java.base/javax/net/ssl/sslcontext#getSupportedSSLParameters())를 사용하여 지원되는 TLS/SSL 버전을 출력하는 방법을 보여줍니다.

```
System.out.println(Arrays.toString(SSLContext.getDefault().getSupportedSSLParameters().getProtocols()));
```

예를 들어, Amazon Corretto 17(OpenJDK)은 다음과 같은 출력을 생성합니다.

```
[TLSv1.3, TLSv1.2, TLSv1.1, TLSv1, SSLv3, SSLv2Hello]
```

작동 중인 SSL 핸드셰이크와 사용된 TLS 버전을 보려면 시스템 속성 **javax.net.debug**를 사용하면 됩니다.

예를 들어, TLS를 사용하는 자바 애플리케이션을 실행해 보세요.

```
java app.jar -Djavax.net.debug=ssl:handshake
```

애플리케이션은 다음과 유사한 SSL 핸드셰이크를 기록합니다.

```
...
javax.net.ssl|DEBUG|10|main|2022-12-23 13:53:12.221 EST|ClientHello.java:641|Produced ClientHello handshake message (
"ClientHello": {
  "client version"      : "TLSv1.2",

...
javax.net.ssl|DEBUG|10|main|2022-12-23 13:53:12.295 EST|ServerHello.java:888|Consuming ServerHello handshake message (
"ServerHello": {
  "server version"      : "TLSv1.2",
...
```

## 최소 TLS 버전 적용
<a name="enforce-minimum-tls-version"></a>

Java용 SDK는 항상 플랫폼 및 서비스에서 지원하는 최신 TLS 버전을 선호합니다. 특정 최소 TLS 버전을 적용하려면 Java 플랫폼 설명서를 참조하세요.

OpenJDK 기반 JVM의 경우 시스템 속성 `jdk.tls.client.protocols`을 사용할 수 있습니다.

예를 들어, TLS 1.3을 사용할 수 있더라도 애플리케이션의 SDK 서비스 클라이언트가 TLS 1.2를 사용하도록 하려면 다음 시스템 속성을 제공하세요.

```
java app.jar -Djdk.tls.client.protocols=TLSv1.2
```

## AWS API 엔드포인트를 TLS 1.2로 업그레이드
<a name="tls-more-info"></a>

최소 버전의 TLS 1.2로 이동하는 AWS API 엔드포인트에 대한 자세한 내용은이 [블로그 게시물](https://aws.amazon.com/blogs//security/tls-1-2-required-for-aws-endpoints/)을 참조하세요.