

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

# 서버 인증
<a name="server-authentication"></a>

디바이스 또는 다른 클라이언트 AWS IoT Core가 AWS IoT Core 연결을 시도하면 서버는 디바이스가 서버를 인증하는 데 사용하는 X.509 인증서를 전송합니다. 인증은 [X.509 인증서 체인](x509-client-certs.md) 검증을 통해 TLS 계층에서 이루어집니다. 이는 HTTPS URL을 방문할 때 브라우저에서 사용하는 것과 동일한 방법입니다. 자체 인증 기관의 인증서를 사용하려면 단원을 참조하세요[CA 인증서 관리](manage-your-CA-certs.md)

디바이스 또는 다른 클라이언트가 엔드포인트에 AWS IoT Core TLS 연결을 설정하면는 디바이스가 다른 서버가 가장하는 것이 AWS IoT Core 아니라와 통신하고 있는지 확인하는 데 사용하는 인증서 체인을 AWS IoT Core 나타냅니다 AWS IoT Core. 표시되는 체인은 디바이스가 연결하는 엔드포인트 유형과 클라이언트가 TLS 핸드셰이크 중에 AWS IoT Core 협상한 [암호 제품군](transport-security.md)의 조합에 따라 달라집니다.

## 엔드포인트 유형
<a name="endpoint-types"></a>

AWS IoT Core 는를 지원합니다`iot:Data-ATS`. `iot:Data-ATS` 엔드포인트는 [Amazon Trust Services](https://www.amazontrust.com/repository/) CA에서 서명한 서버 인증서를 제공합니다.

ATS 엔드포인트에서 제공하는 인증서는 Starfield에서 교차 서명합니다. 일부 TLS 클라이언트 구현에는 신뢰 루트의 검증이 필요하며 클라이언트의 신뢰할 수 있는 스토어에 Starfield CA 인증서가 설치되어 있어야 합니다.

**주의**  
전체 인증서(발급자 이름 등 포함)를 해시하는 인증서 고정 방법을 사용하는 것은 권장되지 않습니다. 이렇게 하면 AWS에서 제공하는 ATS 인증서가 Starfield에 의해 교차 서명되고 발급자 이름이 다르기 때문에 인증서 확인에 실패할 수 있습니다.

**중요**  
`iot:Data-ATS` 엔드포인트를 사용합니다. Symantec 및 Verisign 인증서는 더 이상 사용되지 않으며에서 더 이상 지원되지 않습니다 AWS IoT Core.

`describe-endpoint` 명령을 사용하여 ATS 엔드포인트를 생성할 수 있습니다.

```
aws iot describe-endpoint --endpoint-type iot:Data-ATS
```

`describe-endpoint` 명령은 다음 형식으로 엔드포인트를 반환합니다.

```
account-specific-prefix.iot.your-region.amazonaws.com
```

**참고**  
`describe-endpoint`를 처음 호출하면 엔드포인트가 생성됩니다. 이후 `describe-endpoint`에 대한 모든 호출은 동일한 엔드포인트를 반환합니다.

**참고**  
 AWS IoT Core 콘솔에서 `iot:Data-ATS` 엔드포인트를 보려면 **설정을** 선택합니다. 콘솔에는 `iot:Data-ATS` 엔드포인트만 표시됩니다.

### AWS SDK for Java`IotDataPlaneClient`를 사용하여 생성
<a name="java-client"></a>

`iot:Data-ATS` 엔드포인트를 사용하는 `IotDataPlaneClient`를 생성하려면 다음을 수행해야 합니다.
+ [DescribeEndpoint](https://docs.aws.amazon.com/iot/latest/apireference/API_DescribeEndpoint.html) API를 사용하여 `iot:Data-ATS` 엔드포인트를 생성합니다.
+ `IotDataPlaneClient`를 생성할 때 해당 엔드포인트를 지정합니다.

다음 예제에서는 이 두 작업을 모두 수행합니다.

```
public void setup() throws Exception {
        IotClient client = IotClient.builder().credentialsProvider(CREDENTIALS_PROVIDER_CHAIN).region(Region.US_EAST_1).build();
        String endpoint = client.describeEndpoint(r -> r.endpointType("iot:Data-ATS")).endpointAddress();
        iot = IotDataPlaneClient.builder()
                                .credentialsProvider(CREDENTIALS_PROVIDER_CHAIN)
                                .endpointOverride(URI.create("https://" + endpoint))
                                .region(Region.US_EAST_1)
                                .build();
}
```

## 서버 인증을 위한 CA 인증서
<a name="server-authentication-certs"></a>

사용 중인 데이터 엔드포인트 유형과 협상한 암호 제품군에 따라 AWS IoT Core 서버 인증 인증서는 다음 루트 CA 인증서 중 하나로 서명됩니다.

**Amazon Trust Services 엔드포인트(기본 설정됨)**

**참고**  
이 링크를 마우스 오른쪽 버튼으로 클릭하고 **다른 이름으로 링크 저장**을 선택하여 이러한 인증서를 파일로 저장해야 할 수 있습니다.
+ RSA 2048비트 키: [https://www.amazontrust.com/repository/AmazonRootCA1.pem](https://www.amazontrust.com/repository/AmazonRootCA1.pem).
+ RSA 4096비트 키: Amazon Root CA 2. 추후 사용 예약.
+ ECC 256비트 키: [https://www.amazontrust.com/repository/AmazonRootCA3.pem](https://www.amazontrust.com/repository/AmazonRootCA3.pem).
+ ECC 384비트 키: Amazon Root CA 4. 추후 사용 예약.

이러한 인증서는 모두 [Starfield 루트 CA 인증서](https://www.amazontrust.com/repository/SFSRootCAG2.pem)에서 교차 서명됩니다. 아시아 태평양(뭄바이) AWS IoT Core 리전 AWS IoT Core 에서 2018년 5월 9일 출시부터 모든 신규 리전은 ATS 인증서만 제공합니다.

**VeriSign 엔드포인트(레거시)**
+ RSA 2048비트 키: [VeriSign Class 3 Public Primary G5 루트 CA 인증서](https://www.digicert.com/kb/digicert-root-certificates.htm)

## 서버 인증 지침
<a name="server-authentication-guidelines"></a>

디바이스에서 AWS IoT Core 서버 인증 인증서를 검증하는 기능에 영향을 미칠 수 있는 많은 변수가 있습니다. 예를 들어 디바이스의 메모리가 너무 한정적이어서 가능한 모든 루트 CA 인증서를 보유할 수 없거나, 디바이스가 비표준 인증서 검증 방법을 구현할 수 있습니다. 이러한 이유로 다음 지침을 따르는 것이 좋습니다.
+ ATS 엔드포인트를 사용하고 지원되는 모든 Amazon Root CA 인증서를 설치하는 것이 좋습니다.
+ 디바이스에 이러한 인증서를 모두 저장할 수 없고 디바이스에서 ECC 기반 검증을 사용하지 않는 경우 [https://www.amazontrust.com/repository/AmazonRootCA3.pem](https://www.amazontrust.com/repository/AmazonRootCA3.pem) 및 [https://www.amazontrust.com/repository/AmazonRootCA4.pem](https://www.amazontrust.com/repository/AmazonRootCA4.pem) ECC 인증서를 생략할 수 있습니다. 디바이스가 RSA 기반 인증서 검증을 구현하지 않는 경우 [https://www.amazontrust.com/repository/AmazonRootCA1.pem](https://www.amazontrust.com/repository/AmazonRootCA1.pem) 및 [https://www.amazontrust.com/repository/AmazonRootCA2.pem](https://www.amazontrust.com/repository/AmazonRootCA2.pem) RSA 인증서를 생략할 수 있습니다. 이 링크를 마우스 오른쪽 버튼으로 클릭하고 **다른 이름으로 링크 저장**을 선택하여 이러한 인증서를 파일로 저장해야 할 수 있습니다.
+ ATS 엔드포인트에 연결할 때 서버 인증서 검증 문제가 발생하는 경우 관련 교차 서명된 Amazon Root CA 인증서를 신뢰할 수 있는 스토어에 추가해 보세요. 이 링크를 마우스 오른쪽 버튼으로 클릭하고 **다른 이름으로 링크 저장**을 선택하여 이러한 인증서를 파일로 저장해야 할 수 있습니다.
  + [교차 서명 Amazon Root CA 1](https://www.amazontrust.com/repository/G2-RootCA1.pem)
  + [교차 서명된 Amazon Root CA 2](https://www.amazontrust.com/repository/G2-RootCA2.pem) - 향후 사용을 위해 예약됩니다.
  + [교차 서명 Amazon Root CA 3](https://www.amazontrust.com/repository/G2-RootCA3.pem)
  + [교차 서명된 Amazon Root CA 4 - 향후 사용을 위해 예약됩니다.](https://www.amazontrust.com/repository/G2-RootCA4.pem)
+ 서버 인증서 검증 문제가 발생하는 경우 디바이스가 루트 CA를 명시적으로 신뢰해야 할 수 있습니다. [https://www.amazontrust.com/repository/SFSRootCAG2.pem](https://www.amazontrust.com/repository/SFSRootCAG2.pem)를 트러스트 스토어에 추가하세요.
+ 위의 단계를 실행한 후에도 문제가 계속 발생하면 [AWS 개발자 지원](https://aws.amazon.com/premiumsupport/plans/developers/) 센터에 문의하세요.

**참고**  
CA 인증서에는 서버 인증서를 검증하는 데 사용할 수 없는 만료 날짜가 있습니다. 따라서 만료 날짜가 도래하기 전에 CA 인증서를 교체해야 하는 경우도 있습니다. 지속적 연결을 보장하고 최신 보안 모범 사례를 유지하려면 모든 디바이스 또는 클라이언트에서 루트 CA 인증서를 업데이트해야 합니다.

**참고**  
디바이스 코드 AWS IoT Core 에서에 연결할 때 연결에 사용하는 API에 인증서를 전달합니다. 사용하는 API는 SDK에 따라 다릅니다. 자세한 내용은 [AWS IoT Core 디바이스 SDK](iot-sdks.md)를 참조하세요.