이 페이지는 Apigee 및 Apigee Hybrid에 적용됩니다.
Apigee Edge 문서 보기
이 섹션에서는 프록시에서 대상으로 전송되는 트래픽에 대해 TLS를 구성하는 방법을 보여줍니다.
대상 엔드포인트 또는 대상 서버의 TLS 옵션 설정 정보
타겟은 아래와 같은 XML 객체로 나타낼 수 있습니다.
<HTTPTargetConnection> <Properties/> <URL>https:myTargetAddress</URL> <SSLInfo> <Enabled>true</Enabled> <Enforce>true</Enforce> <ClientAuthEnabled>true</ClientAuthEnabled> <KeyStore>ref://myKeystoreRef</KeyStore> <KeyAlias>myKeyAlias</KeyAlias> <TrustStore>ref://myTruststoreRef</TrustStore> <IgnoreValidationErrors>false</IgnoreValidationErrors> <Protocols>myProtocols</Protocols> <Ciphers>myCipher</Ciphers> </SSLInfo> </HTTPTargetConnection>
TLS를 구성하기 위해 수정하는 대상 엔드포인트 구성의 영역은 <SSLInfo>
태그로 정의됩니다. 동일한 <SSLInfo>
태그를 사용하여 대상 엔드포인트 또는 대상 서버를 구성합니다.
<SSLInfo>
의 하위 요소에 대한 자세한 내용은 TLS/SSL TargetEndpoint 구성을 참조하세요.
다음 표에서는 <SSLInfo>
태그에서 사용되는 TLS 구성 요소를 설명합니다.
요소 | 설명 |
---|---|
<Enabled> |
<SSLInfo> 블록은 단방향 및 양방향 TLS/SSL 모두에 사용할 수 있습니다.
|
<Enforce> |
Apigee와 대상 백엔드 간에 엄격한 SSL을 적용합니다.
설정하지 않거나 |
<ClientAuthEnabled> |
Apigee와 API 클라이언트 간 또는 Apigee와 대상 백엔드 간의 양방향 TLS(상호 TLS 또는 mTLS라고도 함)를 사용 설정합니다. 양방향 TLS를 사용 설정하려면 일반적으로 Apigee와 트러스트 저장소에 트러스트 저장소를 설정해야 합니다. |
<KeyStore> |
아웃바운드 클라이언트 인증에 사용되는 비공개 키가 포함된 키 저장소 |
<KeyAlias> |
키 저장소에 인증서와 비공개 키를 업로드할 때 지정된 별칭입니다. |
<TrustStore> |
신뢰할 수 있는 서버 인증서가 포함된 키 저장소 |
<IgnoreValidationErrors> |
유효성 검사 오류 무시 여부를 나타냅니다. 백엔드 시스템이 SNI를 사용하고 호스트 이름과 일치하지 않는 주체 고유 이름(DN)이 있는 인증서를 반환하면 오류를 무시할 수 없으며 연결이 실패합니다. 참고: |
<Ciphers> |
아웃바운드 TLS/SSL에 지원되는 암호화입니다. 암호화를 지정하지 않으면 JVM에 사용 가능한 모든 암호화가 허용됩니다. 암호화를 제한하려면 지원되는 암호화를 나열하는 다음 요소를 추가합니다. <Ciphers> <Cipher>TLS_RSA_WITH_3DES_EDE_CBC_SHA</Cipher> <Cipher>TLS_RSA_WITH_DES_CBC_SHA</Cipher> </Ciphers> |
<Protocols> |
아웃바운드 TLS/SSL에 지원되는 프로토콜입니다. 프로토콜을 지정하지 않으면 JVM에 사용 가능한 모든 프로토콜이 허용됩니다. 프로토콜을 제한하려면 명시적으로 지정합니다. 예를 들어 TLS v1.2 또는 TLS v1.3만 허용하려면 다음 안내를 따르세요. <Protocols> <Protocol>TLSv1.2</Protocol> <Protocol>TLSv1.3</Protocol> </Protocols> |
<KeyStore> 및 <TrustStore> 요소 설정 정보
위 예시에서 키 저장소 및 트러스트 저장소는 참조를 사용하여 다음 형식으로 지정됩니다.
<KeyStore>ref://myKeystoreRef</KeyStore> <TrustStore>ref://myTruststoreRef</TrustStore>
Apigee에서는 항상 키 저장소와 트러스트 저장소에 대한 참조를 사용할 것을 적극 권장합니다. 참조는 키 저장소 이름을 직접 지정하는 대신 키 저장소 또는 트러스트 저장소의 이름이 포함되는 변수입니다. 예를 들면 다음과 같습니다.
myKeystoreRef
는 키 저장소 이름이 포함된 참조입니다. 이 예시에서 키 저장소 이름은 myKeystore입니다.myTruststoreRef
는 트러스트 저장소 이름이 포함된 참조입니다. 이 예시에서 트러스트 저장소의 이름은 myTruststore입니다.
인증서가 만료되면 대상 엔드포인트/대상 서버를 업데이트하여 새 인증서가 포함된 키 저장소 또는 트러스트 저장소를 지정해야 합니다. 참조의 장점은 대상 엔드포인트/대상 서버 자체를 수정할 필요 없이 참조 값을 수정하여 키 저장소 또는 트러스트 저장소를 변경할 수 있다는 것입니다.
참조의 값을 변경할 때는 Google Cloud Customer Care에 문의할 필요가 없습니다.
키 저장소 이름과 트러스트 저장소 이름을 직접 지정할 수도 있습니다.
<KeyStore>myKeystore</KeyStore>
<TrustStore>myTruststore</TrustStore>
키 저장소 또는 트러스트 저장소의 이름을 직접 지정할 경우 Google Cloud Customer Care에 문의해야 합니다.
세 번째 옵션은 흐름 변수를 사용하는 것입니다.
<KeyStore>{ssl.keystore}</KeyStore>
<TrustStore>{ssl.truststore}</TrustStore>
흐름 변수를 사용하면 참조와 같이 키 저장소 또는 트러스트 저장소를 업데이트할 수 있습니다. 자세한 내용은 흐름 변수를 사용하여 TLS/SSL 값을 동적으로 설정을 참조하세요.
TLS 구성 정보
유료 및 평가 계정 둘 다의 모든 Apigee 고객은 대상 엔드포인트/대상 서버 구성을 완전히 제어할 수 있습니다. 또한 유료 Apigee 고객은 TLS 속성을 완전히 제어할 수 있습니다.
만료된 인증서 처리
TLS 인증서가 만료되거나 인증서가 더 이상 유효하지 않도록 시스템 구성이 변경되면 인증서를 업데이트해야 합니다. 대상 엔드포인트/대상 서버의 TLS를 구성하는 경우 구성을 수행하기 전에 해당 업데이트를 수행할 방법을 결정해야 합니다.
인증서 만료 시기
Apigee에서는 인증서를 다음 두 위치 중 하나에 저장합니다.
- Keystore - TLS 핸드셰이크 중에 항목을 식별하는 데 사용되는 TLS 인증서와 비공개 키를 포함합니다.
- 트러스트 저장소 - 클라이언트에 제공된 TLS 서버 인증서의 유효성을 검사하는 데 사용되는 TLS 클라이언트의 신뢰할 수 있는 인증서를 포함합니다. 이러한 인증서는 일반적으로 자체 서명 인증서, 신뢰할 수 있는 CA에서 서명한 인증서 또는 양방향 TLS(상호 TLS 또는 mTLS라고도 함)의 일부로 사용되는 인증서입니다.
키 저장소의 인증서가 만료되고 키 저장소 참조를 사용하는 경우 새 인증서를 키 저장소에 업로드할 수 없습니다. 대신 다음을 수행합니다.
- 새 키 저장소를 생성합니다.
- 이전 키 저장소와 동일한 별칭 이름을 사용하여 새 키 저장소에 새 인증서를 업로드합니다.
- 새 키 저장소를 사용하도록 대상 서버/대상 엔드포인트의 참조를 업데이트합니다.
트러스트 저장소의 인증서가 만료되고 트러스트 저장소에 대한 참조를 사용하는 경우 다음을 수행합니다.
- 새 트러스트 저장소를 만듭니다.
- 새 인증서를 새 트러스트 저장소에 업로드합니다. 별칭 이름은 트러스트 저장소에서 중요하지 않습니다. 참고 인증서가 체인의 일부인 경우 모든 인증서가 포함된 단일 파일을 만들어 해당 파일을 단일 별칭으로 업로드하거나, 각 인증서에 서로 다른 별칭을 사용하여 체인의 모든 인증서를 트러스트 저장소에 업로드 합니다.
- 새 트러스트 저장소를 사용하려면 대상 서버/대상 엔드포인트의 참조를 업데이트합니다.
만료된 인증서 업데이트 방법 요약
대상 엔드포인트/대상 서버에서 키 저장소 및 트러스트 저장소의 이름을 지정하는 데 사용하는 방법은 인증서 업데이트 수행 방법을 결정합니다. 이 옵션은 다음과 같습니다.
- 참조
- 직접 이름
- 흐름 변수
다음 표에 설명된 것처럼 이러한 각 방법이 업데이트 프로세스에 미치는 영향은 서로 다릅니다.
구성 유형 | 인증서 업데이트/교체 방법 | 용도 |
---|---|---|
참조(권장) | 키 저장소의 경우 새 이름과 이전 별칭과 동일한 이름으로 새 키 저장소를 만듭니다. 트러스트 저장소의 경우 새 이름으로 트러스트 저장소를 만듭니다. |
키 저장소 또는 트러스트 저장소에 대한 참조를 업데이트합니다. Apigee 지원팀에 문의할 필요가 없습니다. |
흐름 변수 | 키 저장소의 경우 새 이름 및 동일한 이름 또는 새 이름의 별칭으로 새 키 저장소를 만듭니다. 트러스트 저장소의 경우 새 이름으로 트러스트 저장소를 만듭니다. |
각 요청에서 업데이트된 흐름 변수를 새 키 저장소, 별칭 또는 트러스트 저장소의 이름으로 전달합니다.
Apigee 지원팀에 문의할 필요가 없습니다. |
직접 | 새 키 저장소, 별칭, 트러스트 저장소를 만듭니다. | 프록시를 다시 배포합니다. |
직접 | 키 저장소 또는 트러스트 저장소를 삭제하고 동일한 이름으로 다시 생성합니다. |
새 키 저장소와 별칭이 설정될 때까지 API 요청이 실패합니다.
키 저장소가 Apigee와 백엔드 서비스 간의 양방향 TLS(상호 TLS 또는 mTLS라고도 함)에 사용되는 경우 Google Cloud Customer Care에 문의하여 메시지 프로세서를 다시 시작합니다. |
직접 | 트러스트 저장소의 경우에만 트러스트 저장소에 새 인증서를 업로드합니다. | 메시지 프로세서를 다시 시작하려면 Google Cloud Customer Care에 문의하세요. |