TLS 구성 옵션

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

이 문서에서는 두 가지 기능 영역에 대해 Edge에서 TLS를 구성하는 방법을 간략하게 설명합니다.

  1. API 클라이언트로 API 프록시에 액세스 Edge 라우터에서 가상 호스트를 사용하여 TLS를 구성합니다.
  2. Edge로 백엔드 서비스에 액세스합니다. Edge 메시지 프로세서에서 대상 엔드포인트 및 대상 서버를 사용하여 TLS를 구성합니다.

두 가지 액세스 유형은 아래에 나와 있습니다.

가상 호스트 또는 대상 엔드포인트/대상 서버의 TLS 옵션 설정 정보

가상 호스트는 다음과 같은 형식의 XML 객체로 나타낼 수 있습니다.

<VirtualHost name="secure">
    ...
    <SSLInfo> 
        <Enabled>true</Enabled> 
        <ClientAuthEnabled>true</ClientAuthEnabled> 
        <KeyStore>ref://myKeystoreRef</KeyStore> 
        <KeyAlias>myKeyAlias</KeyAlias> 
        <TrustStore>ref://myTruststoreRef</TrustStore> 
        <IgnoreValidationErrors>false</IgnoreValidationErrors>
    </SSLInfo>
</VirtualHost>

TLS를 구성하기 위해 수정하는 가상 호스트의 영역은 <SSLInfo> 태그로 정의됩니다. 동일한 <SSLInfo> 태그를 사용하여 대상 엔드포인트 또는 대상 서버를 구성합니다.

다음 표에서는 <SSLInfo> 태그에서 사용되는 TLS 구성 요소를 설명합니다.

요소 설명
<Enabled>

Edge와 API 클라이언트 간 또는 Edge와 대상 백엔드 간의 단방향 TLS를 사용 설정합니다.

가상 호스트의 경우 인증서와 비공개 키가 포함된 키 저장소를 정의해야 합니다.

<ClientAuthEnabled>

Edge와 API 클라이언트 간 또는 Edge와 대상 백엔드 간의 양방향 TLS를 사용 설정합니다.

일반적으로 양방향 TLS를 사용 설정하려면 Edge에 트러스트 저장소를 설정해야 합니다.

<KeyStore> 키 저장소입니다.
<KeyAlias> 키 저장소에 인증서와 비공개 키를 업로드할 때 지정된 별칭입니다.
<TrustStore> 트러스트 저장소입니다.
<IgnoreValidationErrors>

true인 경우 Edge는 TLS 인증서 오류를 무시합니다. 대상 서버 및 대상 엔드포인트에 TLS를 구성할 때와 양방향 TLS를 사용하는 가상 호스트를 구성할 때 유효합니다. 기본값은 false입니다.

대상 엔드포인트/대상 서버와 함께 사용될 때 백엔드 시스템이 SNI를 사용하고 호스트 이름과 일치하지 않는 주체 고유 이름(DN)이 있는 인증서를 반환하는 경우 오류를 무시할 수 있는 방법이 없으며 연결에 실패합니다.

<CommonName>

지정된 경우 대상 인증서의 일반 이름을 검증하는 값입니다. 이 값은 TargetEndpoint 및 TargetServer 구성에만 유효합니다. VirtualHost 구성에는 유효하지 않습니다.

기본적으로 지정된 값은 대상 인증서의 일반 이름과 정확하게 일치됩니다. 예를 들어 <CommonName>의 값으로 *.myhost.com를 사용하면 정확한 값 *.myhost.com가 대상 인증서의 일반 이름으로 지정된 경우에만 대상 호스트 이름과 일치하고 유효성을 검사합니다.

원하는 경우 Apigee에서 wildcardMatch 속성을 사용하여 와일드 카드로 일치를 수행할 수 있습니다.

예를 들어 <CommonName> 요소가 다음과 같이 지정된 경우 대상 인증서에서 abc.myhost.com로 지정된 일반 이름이 일치하고 검증됩니다.

<CommonName wildcardMatch="true">*.myhost.com</CommonName>

<KeyStore> 및 <TrustStore> 요소 설정 정보

위의 가상 호스트 예시에서는 키 저장소와 트러스트 저장소가 references를 사용하여 다음 형식으로 지정됩니다.

<KeyStore>ref://myKeystoreRef</KeyStore>
<TrustStore>ref://myTruststoreRef</TrustStore>

Apigee에서는 항상 키 저장소와 트러스트 저장소에 대한 참조를 사용할 것을 적극 권장합니다. 참조는 키 저장소 이름을 직접 지정하는 대신 키 저장소 또는 트러스트 저장소의 이름이 포함되는 변수입니다. 이 예에서는 다음과 같이 정의됩니다.

  • myKeystoreRef는 키 저장소 이름이 포함된 참조입니다. 이 예시에서 키 저장소 이름은 myKeystore입니다.
  • myTruststoreRef는 트러스트 저장소 이름이 포함된 참조입니다. 이 예시에서 트러스트 저장소의 이름은 myTruststore입니다.

인증서가 만료되면 가상 호스트 또는 대상 엔드포인트/대상 서버를 업데이트하여 새 인증서가 포함된 키 저장소 또는 트러스트 저장소를 지정해야 합니다. 참조를 사용하면 가상 호스트 또는 대상 엔드포인트/대상 서버 자체를 수정할 필요 없이 참조 값을 수정하여 키 저장소 또는 트러스트 저장소를 변경할 수 있다는 이점이 있습니다.

  • Cloud 고객: 참조 값을 변경하기 위해 Apigee Edge 지원팀에 문의할 필요가 없습니다.
  • Private Cloud 고객의 경우: 참조 값을 변경할 때 라우터 및 메시지 프로세서와 같은 에지 구성요소를 다시 시작할 필요가 없습니다.

키 저장소 이름과 트러스트 저장소 이름을 직접 지정할 수도 있습니다.

<KeyStore>myKeystore</KeyStore>
<TrustStore>myTruststore</TrustStore> 

키 저장소 또는 트러스트 저장소의 이름을 직접 지정하면 클라우드 고객은 Apigee Edge 지원에 문의해야 하며 프라이빗 클라우드 고객은 특정 Edge 구성요소를 다시 시작하여 인증서를 업데이트해야 합니다.

대상 엔드포인트/대상 서버에만 해당되는 세 번째 옵션은 다음과 같이 흐름 변수를 사용하는 것입니다.

<KeyStore>{ssl.keystore}</KeyStore>
<TrustStore>{ssl.truststore}</TrustStore> 

흐름 변수는 대상 엔드포인트/대상 서버에서 작동하며 참조와 같은 키 저장소 또는 트러스트 저장소를 업데이트할 수 있도록 합니다. 그러나 가상 호스트에서는 작동하지 않으며 모든 요청마다 키 저장소, 별칭, 트러스트 저장소에 대한 정보를 전달해야 합니다.

키 저장소 및 트러스트 저장소 사용에 대한 제한

유료 클라우드 고객과 TLS를 구성하는 모든 Private Cloud 고객은 키 저장소 및 트러스트 저장소에 대한 참조를 사용할 때 다음 제한사항을 고려해야 합니다.

  • Apigee 라우터에서 TLS를 종료한 경우에만 가상 호스트에서 키 저장소 및 트러스트 저장소 참조를 사용할 수 있습니다.
  • Apigee 라우터 앞에 부하 분산기가 있고 부하 분산기에서 TLS를 종료하면 가상 호스트에서 키 저장소 및 트러스트 저장소 참조를 사용할 수 없습니다.

기존 가상 호스트가 리터럴 키 저장소 또는 truststore 이름을 사용하는 경우

Edge의 기존 가상 호스트는 키 저장소 및 트러스트 저장소에 대한 참조를 사용하지 않도록 구성되었을 수 있습니다. 이 경우 가상 호스트를 업데이트하여 참조를 사용할 수 있습니다.

  1. 클라우드용 에지

    키 저장소에 대한 참조를 사용하도록 가상 호스트를 변경하려면 Apigee Edge 지원을 통해 작업해야 합니다.

  2. Private Cloud용 Edge

    참조를 사용하도록 가상 호스트를 변환하려면 다음 안내를 따르세요.

    1. 참조를 사용하도록 가상 호스트를 업데이트합니다.
    2. 라우터를 다시 시작합니다.
    자세한 내용은 Private Cloud용 API에 대한 TLS 액세스 구성에서 '키 저장소 및 truststore에 대한 참조를 사용하도록 가상 호스트 수정'을 참조하세요.

Apigee 무료 체험판 인증서 및 키 사용 정보

유료 Cloud Edge for Cloud 계정이 있지만 아직 TLS 인증서와 키가 없는 경우 Apigee 무료 체험판 인증서 및 키를 사용하는 가상 호스트를 만들 수 있습니다. 즉, 키 저장소를 먼저 만들지 않고도 가상 호스트를 만들 수 있습니다.

Apigee 무료 체험판 인증서 및 키를 사용하여 가상 호스트를 정의하는 XML 객체는 <KeyStore><KeyAlias> 요소를 생략하고 아래와 같이 <UseBuiltInFreeTrialCert> 요소로 바꿉니다.

<VirtualHost name="myTLSVHost">
    <HostAliases>
        <HostAlias>myapi.apigee.net</HostAlias>
    </HostAliases>
    <Port>443</Port>
    <SSLInfo>
        <Enabled>true</Enabled>
        <ClientAuthEnabled>false</ClientAuthEnabled>
    </SSLInfo>
    <UseBuiltInFreeTrialCert>true</UseBuiltInFreeTrialCert>
</VirtualHost>

양방향 TLS를 수행하는 경우에도 <ClientAuthEnabled> 요소를 true로 설정하고 <TrustStore> 요소와 함께 참조를 사용하여 트러스트 저장소를 지정해야 합니다.

자세한 내용은 Cloud용 가상 호스트 구성을 참조하세요.

TLS 구성 정보

TLS 구성을 수행하는 방법을 결정하는 두 가지 주요 요소는 다음과 같습니다.

  • 에지 클라우드 또는 프라이빗 클라우드 고객이신가요?
  • 만료되었거나 만료되는 인증서를 어떻게 업데이트하나요?

Cloud 및 Private Cloud 구성 옵션

다음 표는 클라우드 및 프라이빗 클라우드 고객을 위한 다양한 구성 옵션을 보여줍니다.

Private Cloud Cloud
가상 호스트 완전한 제어 유료 계정의 경우에만 완전한 제어
대상 엔드포인트/대상 서버 완전한 제어 완전한 제어

프라이빗 클라우드 고객은 가상 호스트와 대상 엔드포인트/대상 서버 모두의 구성을 완벽하게 제어할 수 있습니다. 이 제어에는 가상 호스트를 생성 및 삭제하고 가상 호스트의 모든 속성을 설정하는 기능이 포함됩니다.

유료 및 평가를 포함한 모든 Cloud 고객은 대상 엔드포인트/대상 서버의 구성을 완벽하게 제어할 수 있습니다. 또한 유료 Cloud 고객은 TLS 속성을 포함하여 가상 호스트를 완벽하게 제어할 수 있습니다.

만료된 인증서 처리

TLS 인증서가 만료되거나 인증서가 더 이상 유효하지 않도록 시스템 구성이 변경되면 인증서를 업데이트해야 합니다. 가상 호스트 또는 대상 엔드포인트/대상 서버의 TLS를 구성하는 경우 구성을 수행하기 전에 해당 업데이트를 수행할 방법을 결정해야 합니다.

인증서 만료 시기

Edge에서는 인증서를 다음 두 위치 중 하나에 저장합니다.

  • 키 저장소 - TLS 핸드셰이크 중에 항목을 식별하는 데 사용되는 TLS 인증서와 비공개 키를 포함합니다.
  • 트러스트 저장소 - 클라이언트에 제공된 TLS 서버 인증서의 유효성을 검사하는 데 사용되는 TLS 클라이언트의 신뢰할 수 있는 인증서를 포함합니다. 이러한 인증서는 일반적으로 자체 서명 인증서, 신뢰할 수 있는 CA에서 서명한 인증서 또는 양방향 TLS의 일부로 사용되는 인증서입니다.

키 저장소의 인증서가 만료되고 키 저장소 참조를 사용하는 경우 새 인증서를 키 저장소에 업로드할 수 없습니다. 대신 다음을 수행합니다.

  1. 새 키 저장소를 생성합니다.
  2. 이전 키 저장소와 동일한 별칭 이름을 사용하여 새 키 저장소에 새 인증서를 업로드합니다.
  3. 새 키 저장소를 사용하도록 가상 호스트 또는 대상 서버/대상 엔드포인트의 참조를 업데이트합니다.

트러스트 저장소의 인증서가 만료되고 트러스트 저장소에 대한 참조를 사용하는 경우 다음을 수행합니다.

  1. 새 트러스트 저장소를 만듭니다.
  2. 새 인증서를 새 트러스트 저장소에 업로드합니다. 별칭 이름은 트러스트 저장소에서 중요하지 않습니다. 참고 인증서가 체인의 일부인 경우 모든 인증서가 포함된 단일 파일을 만들어 해당 파일을 단일 별칭으로 업로드하거나, 각 인증서에 서로 다른 별칭을 사용하여 체인의 모든 인증서를 트러스트 저장소에 업로드 합니다.
  3. 새 트러스트 저장소를 사용하려면 가상 호스트 또는 대상 서버/대상 엔드포인트의 참조를 업데이트합니다.

만료된 인증서 업데이트 방법 요약

가상 호스트 또는 대상 엔드포인트/대상 서버에서 키 저장소 및 트러스트 저장소의 이름을 지정하는 데 사용하는 방법은 인증서 업데이트 수행 방법을 결정합니다. 이 옵션은 다음과 같습니다.

  • 참조
  • 직접 이름
  • 흐름 변수

다음 표에 설명된 것처럼 이러한 메서드마다 업데이트 프로세스에 미치는 영향이 다릅니다. 보시다시피 참조는 클라우드 및 프라이빗 클라우드 고객 모두에게 가장 큰 유연성을 제공합니다.

구성 유형 인증서 업데이트/교체 방법 Private Cloud Cloud
참조(권장) 키 저장소의 경우 새 이름과 이전 별칭과 동일한 이름의 별칭으로 새 키 저장소를 생성합니다.

트러스트 저장소의 경우 새 이름으로 트러스트 저장소를 만듭니다.

키 저장소 또는 truststore에 대한 참조를 업데이트합니다.

라우터 또는 메시지 프로세서를 다시 시작할 필요가 없습니다.

키 저장소 또는 truststore에 대한 참조를 업데이트합니다.

Apigee 지원팀에 문의할 필요가 없습니다.

흐름 변수(대상 엔드포인트만 해당) 키 저장소의 경우 새 이름과 같은 이름 또는 새 이름의 별칭을 사용하여 새 키 저장소를 만듭니다.

트러스트 저장소의 경우 새 이름으로 트러스트 저장소를 만듭니다.

각 요청에서 업데이트된 흐름 변수를 새 키 저장소, 별칭 또는 truststore의 이름과 함께 전달합니다.

라우터 또는 메시지 프로세서를 다시 시작할 필요가 없습니다.

각 요청에서 업데이트된 흐름 변수를 새 키 저장소, 별칭 또는 truststore의 이름과 함께 전달합니다.

Apigee 지원팀에 문의할 필요가 없습니다.

직접성 새 키 저장소, 별칭, 트러스트 저장소를 만듭니다. 가상 호스트를 업데이트하고 라우터를 다시 시작합니다.

트러스트 저장소가 대상 엔드포인트/대상 서버에서 사용되는 경우 프록시를 다시 배포합니다.

가상 호스트의 경우 Apigee Edge 지원팀에 문의하여 라우터를 다시 시작하세요.

트러스트 저장소가 대상 엔드포인트/대상 서버에서 사용되는 경우 프록시를 다시 배포합니다.

직접 키 저장소 또는 트러스트 저장소를 삭제하고 동일한 이름으로 다시 생성합니다. 가상 호스트 업데이트가 필요하지 않으며 라우터를 다시 시작할 필요가 없습니다. 하지만 새 키 저장소와 별칭을 설정할 때까지 API 요청이 실패합니다.

키 저장소가 Edge와 백엔드 서비스 간의 양방향 TLS에 사용되는 경우 메시지 프로세서를 다시 시작합니다.

가상 호스트를 업데이트할 필요는 없습니다. 하지만 새 키 저장소와 별칭이 설정될 때까지 API 요청이 실패합니다.

키 저장소가 Edge와 백엔드 서비스 간의 양방향 TLS에 사용되는 경우 Apigee Edge 지원팀에 문의하여 메시지 프로세서를 다시 시작하세요.

직접 트러스트 저장소의 경우에만 트러스트 저장소에 새 인증서를 업로드합니다. 트러스트 저장소를 가상 호스트에서 사용하는 경우 라우터를 다시 시작합니다.

트러스트 저장소를 대상 엔드포인트/대상 서버에서 사용하는 경우 메시지 프로세서를 다시 시작합니다.

가상 호스트의 경우 Apigee Edge 지원팀에 문의하여 에지 라우터를 다시 시작하세요.

트러스트 저장소를 대상 엔드포인트/대상 서버에서 사용하는 경우 Apigee Edge 지원팀에 문의하여 메시지 프로세서를 다시 시작하세요.