Edge에서 백엔드로 TLS 구성 (Cloud 및 Private Cloud)

<ph type="x-smartling-placeholder"></ph> 현재 Apigee Edge 문서를 보고 있습니다.
Apigee X 문서.
정보

API 프록시는 공개적으로 사용 가능한 엔드포인트를 백엔드 서비스에 매핑하는 역할을 합니다. 가상 호스트는 공개 API 프록시가 앱에 노출되는 방식을 정의합니다. 대상 예를 들어 가상 호스트는 TLS를 사용하여 API 프록시에 액세스할 수 있는지를 결정합니다. API 프록시를 구성하고, ProxyEndpoint 정의를 수정하여 프록시에서 사용하는 가상 호스트를 사용합니다

TargetEndpoint는 ProxyEndpoint의 아웃바운드 버전입니다. TargetEndpoint 함수 에지에서 백엔드 서비스로 HTTP 클라이언트로 전달합니다 API 프록시를 만들 때 0개 이상의 TargetEndpoint를 사용합니다

자세히 알아보기:

TargetEndpoint를 구성하거나 TargetServer

TargetEndpoint를 구성하려면 TargetEndpoint를 정의하는 XML 객체를 수정합니다. 다음과 같은 작업을 할 수 있습니다. 파일에서 TargetEndpoint를 정의하는 XML 파일을 수정하여 TargetEndpoint를 편집 API 프록시를 사용하거나 에지 관리 UI에서 수정하세요.

Edge 관리 UI를 사용하여 TargetEndpoint를 수정하려면 다음 안내를 따르세요.

  1. https://enterprise.apigee.com에서 에지 관리 UI에 로그인합니다.
  2. 업데이트할 API 프록시의 이름을 선택합니다.
  3. 개발 탭을 선택합니다.
  4. 대상 엔드포인트에서 기본값을 선택합니다.
  5. 코드 영역에 아래와 비슷한 TargetEndpoint 정의가 나타납니다.
    <TargetEndpoint name="default">
      <Description/>
      <FaultRules/>
      <Flows/>
      <PreFlow name="PreFlow">
        <Request/>
        <Response/>
      </PreFlow>
      <PostFlow name="PostFlow">
        <Request/>
        <Response/>
      </PostFlow>
      <HTTPTargetConnection>
        <Properties/>
        <SSLInfo>
          <Enabled>true</Enabled>
          <TrustStore>ref://myTrustStoreRef</TrustStore>
        </SSLInfo>
        <URL>https://mocktarget.apigee.net</URL>
      </HTTPTargetConnection>
    </TargetEndpoint>
  6. 아래 설명에 따라 트러스트 저장소를 구성합니다. 백엔드를 사용한 TLS 구성 정보
  7. 수정하고 프록시를 저장합니다. API 프록시가 배포된 경우 저장하기 새 설정으로 다시 배포합니다

TargetEndpoint 정의에는 name 속성이 포함되어 있습니다. 이때 name 속성 API 프록시의 ProxyEndpoint 정의를 구성하여 TargetEndpoint를 반환합니다. 자세한 내용은 API 프록시 구성 참조를 확인하세요.

TargetEndpoint는 명시적이 아닌 TargetServer를 참조하도록 구성할 수 있습니다. 타겟 URL입니다. TargetServer 구성은 구체적인 엔드포인트 URL을 TargetEndpoint 구성 TargetServer는 부하 분산 및 장애 조치를 지원하는 데 사용 여러 백엔드 서버 인스턴스에서 실행할 수 있습니다

다음은 TargetServer 정의의 예입니다.

<TargetServer name="target1">
  <Host>mocktarget.apigee.net</Host>
  <Port>80</Port>
  <IsEnabled>true</IsEnabled>
</TargetServer> 

TargetServer는 <HTTPTargetConnection>에서 이름으로 참조됩니다. 요소가 있는지 확인합니다. 아래와 같이 하나 이상의 명명된 TargetServers를 구성할 수 있습니다.

<TargetEndpoint name="default">
  ...
  <HTTPTargetConnection>
    <LoadBalancer>
      <Server name="target1" />
      <Server name="target2" />
    </LoadBalancer>
    <Path>/test</Path>
  </HTTPTargetConnection>
  ...
</TargetEndpoint>

부하 분산 참조 전체 백엔드 서버에서 사용할 수 있습니다

백엔드를 사용한 TLS 구성 정보

백엔드에 대한 TLS 액세스를 구성하기 전에 다음 두 가지 중요한 사항을 이해해야 합니다. 포인트:

  1. 기본적으로 Edge는 백엔드 인증서를 검증하지 않습니다. 구성하려면 트러스트 저장소를 만들어야 합니다. 인증서를 검증하는 Edge입니다.
  2. 참조를 사용하여 Edge에서 사용하는 keystore 또는 truststore를 지정하세요.

두 가지 고려사항이 아래에 설명되어 있습니다.

인증서 검증을 사용 설정하기 위해 truststore 정의

TargetEndpoint 또는 TargetServer를 통해 TLS 요청을 하는 경우 Edge는 그렇지 않습니다 . 기본적으로 백엔드 서버에서 수신된 TLS 인증서의 유효성을 검사합니다. 즉, Edge는 다음을 확인하지 않습니다.

  • 인증서가 신뢰할 수 있는 CA에서 서명되었습니다.
  • 인증서가 만료되지 않았습니다.
  • 인증서는 일반 이름을 나타냅니다. 공통 이름이 있으면 Edge에서 유효성을 검사하지 않음 일반 이름이 URL에 지정된 호스트 이름과 일치하는지 확인합니다.

백엔드 인증서를 검증하도록 Edge를 구성하려면 다음을 실행해야 합니다.

  1. Edge에 트러스트 저장소를 만듭니다.
  2. 서버의 인증서 또는 인증서 체인을 트러스트 저장소에 업로드합니다. 제3자가 서버 인증서에 서명한 경우 전체 인증서 체인(루트 CA 인증서 포함)을 truststore에 추가합니다. 암시적으로 신뢰할 수 있는 CA가 없습니다.
  3. TargetEndpoint 또는 TargetServer 정의에 truststore를 추가합니다.
를 통해 개인정보처리방침을 정의할 수 있습니다.

자세한 내용은 키 저장소 및 트러스트 저장소를 참고하세요.

예를 들면 다음과 같습니다.

<TargetEndpoint name="default">
  …
  <HTTPTargetConnection>
    <SSLInfo>
      <Enabled>true</Enabled>
      <TrustStore>ref://myTrustStoreRef</TrustStore>
    </SSLInfo>
    <URL>https://myservice.com</URL>
  </HTTPTargetConnection>
  …
</TargetEndpoint>

참조 사용 keystore 또는 truststore에

아래의 예시는 다음과 같이 TargetEndpoint 또는 TargetServer를 구성하는 방법을 보여줍니다. TLS를 지원해야 합니다 TLS를 구성하는 과정에서 사용자는 TargetEndpoint 또는 TargetServer 정의

Apigee에서는 키 저장소 및 키 저장소에 대한 참조를 사용할 것을 적극 권장합니다. truststore는 대상 엔드포인트 또는 TargetServer 정의에 있어야 합니다. 참조 사용의 이점 다른 keystore 또는 truststore를 가리키도록 참조를 업데이트하기만 하면 TLS 인증서를 업데이트합니다

다음의 키 저장소 및 트러스트 저장소 참조 TargetEndpoint 또는 TargetServer 정의는 동일한 방식으로 작동합니다. (가상 호스트용)

참조를 사용하도록 TargetEndpoint 또는 TargetServer 변환

다음과 같은 기존 TargetEndpoint 또는 TargetServer 정의가 있을 수 있습니다. 는 keystore와 truststore의 리터럴 이름을 사용합니다. TargetEndpoint를 변환하려면 또는 TargetServer 정의를 사용하여 참조를 사용합니다.

  1. 참조를 사용하도록 TargetEndpoint 또는 TargetServer 정의를 업데이트합니다.
  2. 에지 메시지 프로세서를 다시 시작합니다. <ph type="x-smartling-placeholder">
      </ph>
    • 퍼블릭 클라우드 고객의 경우 Apigee Edge 지원팀에 문의하여 메시지 프로세서를 다시 시작하세요.
    • Private Cloud 고객의 경우 에지 메시지 프로세서 1개를 다시 시작합니다. 할 수 있습니다.
  3. TargetEndpoint 또는 TargetServer가 올바르게 작동하는지 확인합니다.

백엔드에 단방향 TLS 구성 서버

TargetEndpoint 정의를 사용하는 경우 Edge에서 단방향 TLS 액세스 구성 (TLS 클라이언트) 에지에서 추가 구성이 필요하지 않습니다. 그것은 백엔드 서버에 따라 TLS를 올바르게 구성해야 합니다

<URL> 요소가 TargetEndpoint 정의는 HTTPS 프로토콜로 백엔드 서비스를 참조하며, TLS를 사용 설정합니다.

<TargetEndpoint name="default">
  …
  <HTTPTargetConnection>
    <SSLInfo>
      <Enabled>true</Enabled>
    </SSLInfo>
    <URL>https://myservice.com</URL>
  </HTTPTargetConnection>
  …
</TargetEndpoint>

TargetServer를 사용하여 백엔드 서비스를 정의하는 경우 TLS를 사용 설정하세요. 를 포함합니다.

<TargetServer name="target1">
  <Host>mocktarget.apigee.net</Host>
  <Port>443</Port>
  <IsEnabled>true</IsEnabled>
  <SSLInfo>
    <Enabled>true</Enabled>
  </SSLInfo> 
</TargetServer> 

하지만 Edge에서 백엔드 인증서를 검증하도록 하려면 truststore를 만들어야 합니다. 백엔드 인증서 또는 인증서 체인을 포함합니다. 그런 다음 TargetEndpoint 정의:

<TargetEndpoint name="default">
  …
  <HTTPTargetConnection>
    <SSLInfo>
      <Enabled>true</Enabled>
      <TrustStore>ref://myTrustStoreRef</TrustStore>
    </SSLInfo>
    <URL>https://myservice.com</URL>
  </HTTPTargetConnection>
  …
</TargetEndpoint>

또는 TargetServer 정의에서 다음을 실행합니다.

<TargetServer name="target1">
  <Host>mockserver.apigee.net</Host>
  <Port>443</Port>
  <IsEnabled>true</IsEnabled>
  <SSLInfo>
    <Enabled>true</Enabled>
    <TrustStore>ref://myTrustStoreRef</TrustStore>
  </SSLInfo> 
</TargetServer>

단방향 TLS를 구성하려면 다음 안내를 따르세요.

  1. 백엔드 인증서를 검사하려면 Edge에 트러스트 저장소를 만들고 업로드합니다. 인증서 또는 CA 체인에 대한 자세한 내용은 키 저장소 및 트러스트 저장소. 이 예에서 트러스트 저장소를 만들어야 한다면 이름을 myTrustStore 유형을 사용하는 것입니다.
  2. Truststore를 만든 경우 다음 POST API 호출을 사용하여 생성한 truststore에 대한 myTrustStoreRef라는 참조 위:

    curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
      -d '<ResourceReference name="myTrustStoreRef">
        <Refers>myTrustKeystore</Refers>
        <ResourceType>KeyStore</ResourceType>
      </ResourceReference>' -u email:password
    
  3. Edge 관리 UI를 사용하여 API 프록시의 TargetEndpoint 정의를 업데이트합니다. XML로 API 프록시를 정의하는 경우 프록시의 XML 파일을 수정합니다. <ph type="x-smartling-placeholder">
      </ph>
    1. https://enterprise.apigee.com에서 Edge 관리 UI에 로그인합니다.
    2. Edge 관리 UI 메뉴에서 API를 선택합니다.
    3. 업데이트할 API 프록시의 이름을 선택합니다.
    4. 개발 탭을 선택합니다.
    5. 대상 엔드포인트에서 기본값을 선택합니다.
    6. 코드 영역에서 <HTTPTargetConnection> 요소를 다음과 같이 수정합니다. <SSLInfo> 요소를 추가합니다. 올바른 truststore 참조를 지정하고 <Enabled>를 true로 설정합니다.
      <TargetEndpoint name="default">
        …
        <HTTPTargetConnection>
          <SSLInfo>
            <Enabled>true</Enabled>
            <TrustStore>ref://myTrustStoreRef</TrustStore>
          </SSLInfo>
          <URL>https://myservice.com</URL>
        </HTTPTargetConnection>
        …
      </TargetEndpoint>
    7. API 프록시를 저장합니다. API 프록시가 배포된 경우 저장하면 새 설정을 선택합니다.

백엔드에 양방향 TLS 구성 서버

Edge (TLS 클라이언트)와 백엔드 서버 (TLS) 간에 양방향 TLS를 지원하려는 경우 합니다.

  • Edge에서 키 저장소를 만들고 Edge 인증서와 비공개 키를 업로드합니다.
  • 백엔드 인증서를 검증하려면 Edge에 인증서 및 CA 체인을 가져옵니다.
  • 구성할 백엔드 서버를 참조하는 API 프록시의 TargetEndpoint를 업데이트합니다. TLS 액세스
를 통해 개인정보처리방침을 정의할 수 있습니다.

키 별칭을 사용하여 키 저장소 인증서 지정

동일한 키 저장소에서 각각 고유한 별칭이 있는 여러 인증서를 정의할 수 있습니다. 기본적으로 Edge는 키 저장소에 정의된 첫 번째 인증서를 사용합니다.

필요한 경우 <KeyAlias> 속성으로 지정된 인증서를 사용하도록 Edge를 구성할 수 있습니다. 이렇게 하면 여러 인증서에 대해 단일 키 저장소를 정의하고 TargetServer 정의에서 사용할 서버를 선택하세요. Edge에서 별칭이 있는 인증서를 찾을 수 없는 경우 <KeyAlias>와 일치하는 경우 기본 작업을 사용하여 첫 번째 인증서를 가져옵니다.

퍼블릭 클라우드용 Edge 사용자는 Apigee Edge 지원팀에 문의하여 이 기능을 사용 설정해야 합니다.

양방향 TLS 구성

양방향 TLS를 구성하려면 다음 단계를 따르세요.

  1. Edge에서 키 저장소를 만들고 다음 절차에 따라 인증서와 비공개 키를 업로드합니다. 키 저장소 및 트러스트 저장소에 설명되어 있습니다. 이 예에서는 myTestKeystore라는 키 저장소를 만들고 인증서 및 비공개 키에 대한 myKey의 별칭 이름입니다.
  2. 다음 POST API 호출을 사용하여 참조 만들기 위에서 만든 키 저장소에 이름이 myKeyStoreRef인 키 저장소를 추가합니다.

    curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
    -d '<ResourceReference name="myKeyStoreRef">
        <Refers>myTestKeystore</Refers>
        <ResourceType>KeyStore</ResourceType>
    </ResourceReference>' -u email:password
    

    참조는 키 저장소의 이름과 참조 유형을 KeyStore로 지정합니다.

    참조를 보려면 다음 GET API 호출을 사용하세요.

    curl -X GET https://api.enterprise.apigee.com/v1/o/[org_name}/e/{env_name}/references/myKeyStoreRef /
    -u email:password
    
  3. 백엔드 인증서의 유효성을 검사하려면 Edge에 트러스트 저장소를 만들고 인증서와 CA를 업로드합니다. 키 저장소 및 트러스트 저장소에 설명된 대로 체인에 제공합니다. 이 예에서 트러스트 저장소를 만들어야 한다면 이름을 myTrustStore로 지정합니다.
  4. Truststore를 만든 경우 다음 POST API 호출을 사용하여 생성한 truststore에 대한 myTrustStoreRef라는 참조 위:

    curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
    -d '<ResourceReference name="myTrustStoreRef">
        <Refers>myTrustKeystore</Refers>
        <ResourceType>KeyStore</ResourceType>
    </ResourceReference>' -u email:password
    
  5. Edge 관리 UI를 사용하여 API 프록시의 TargetEndpoint 정의를 업데이트합니다. XML로 API 프록시를 정의하는 경우 프록시의 XML 파일을 수정합니다. <ph type="x-smartling-placeholder">
      </ph>
    1. https://enterprise.apigee.com에서 에지 관리 UI에 로그인합니다.
    2. Edge 관리 UI 메뉴에서 API를 선택합니다.
    3. 업데이트할 API 프록시의 이름을 선택합니다.
    4. 개발 탭을 선택합니다.
    5. 대상 엔드포인트에서 기본값을 선택합니다.
    6. 코드 영역에서 <HTTPTargetConnection> 요소를 다음과 같이 수정합니다. <SSLInfo> 추가 요소가 포함됩니다. 올바른 키 저장소와 키 별칭을 지정하고 <Enabled><ClientAuthEnabled> 요소를 true로 설정합니다. <ph type="x-smartling-placeholder">
      <TargetEndpoint name="default">
        ...
        <HTTPTargetConnection>
          <SSLInfo>
            <Enabled>true</Enabled>
            <ClientAuthEnabled>true</ClientAuthEnabled>
            <KeyStore>ref://myKeyStoreRef</KeyStore>
            <KeyAlias>myKey</KeyAlias>
          </SSLInfo>
          <URL>https://myservice.com</URL>
        </HTTPTargetConnection>
        ...
      </TargetEndpoint>
      </ph>
    7. API 프록시를 저장합니다. API 프록시가 배포된 경우 저장하면 새 설정을 선택합니다.

변수 사용을 포함하여 <TargetEndpoint>에서 사용할 수 있는 옵션에 관한 자세한 내용 TargetEndpoint <SSLInfo> 값을 제공하려면 API 프록시 구성 참조를 확인하세요.

SNI 사용 설정

Edge는 메시지 프로세서에서 대상 서버 이름 표시 (SNI)를 사용하여 엔드포인트가 있습니다.

프라이빗 클라우드용 에지의 경우 기존 대상 백엔드와 하위 호환성을 유지하려면 Apigee가 기본적으로 SNI를 사용 중지했습니다. 대상 백엔드가 SNI를 지원하도록 구성된 경우 이 기능을 사용 설정할 수 있습니다. 자세한 내용은 Edge에서 SNI 사용을 참조하세요.