에지 메시지 프로세서와 백엔드 서버 간에 SNI 구성

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

<ph type="x-smartling-placeholder">

SNI (서버 이름 표시)를 사용하면 여러 HTTPS 백엔드 서버를 동일한 기반으로 제공할 수 있습니다. 백엔드 서버에서 동일한 TLS 인증서를 사용하지 않아도 되는 IP 주소 및 포트 TLS 프로토콜의 확장입니다. 클라이언트에서 SNI를 사용하도록 설정하면 초기 TLS 핸드셰이크의 일부로 백엔드 서버의 호스트 이름입니다. 이렇게 하면 TLS 서버에서 전송 요청을 검증하는 데 사용할 TLS 인증서를 결정합니다. 있습니다

기본적으로 프라이빗 클라우드의 에지에는 메시지 프로세서 구성요소에서 SNI가 사용 중지되어 있습니다. 기존 백엔드 서버와의 하위 호환성을 보장해야 합니다. 백엔드 서버가 메시지 프로세서 구성요소에서 SNI를 사용 설정해야 합니다. 그렇지 않으면 Apigee Edge를 통과하는 API 요청이 실패하고 TLS 핸드셰이크 실패.

이 문서에서는 다음 작업을 실행하는 방법을 설명합니다.

시작하기 전에

SNI 지원 서버 식별

이 섹션에서는 백엔드 서버에 SNI가 사용 설정되어 있는지 확인하는 방법을 설명합니다.

  1. openssl 명령어를 실행하고 관련 서버 호스트 이름에 연결을 시도합니다. (에지 라우터 또는 백엔드 서버) 서버 이름을 전달하지 않습니다.
    openssl s_client -connect hostname:port
    
  2. 인증서를 가져올 수 있고 경우에 따라 openssl 명령어를 사용합니다.
    CONNECTED(00000003) 9362:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:/BuildRoot/Library/Caches/com.apple.xbs/Sources/OpenSSL098/OpenSSL098-64.50.6/src/ssl/s23_clnt.c:593
    
  3. openssl 명령어를 실행하고 관련 서버에 연결해 봅니다. 다음과 같이 서버 이름을 전달하여 호스트 이름 (에지 라우터 또는 백엔드 서버)으로 업데이트합니다.
    openssl s_client -connect hostname:port -servername hostname
    
  4. 1단계에서 핸드셰이크 실패가 발생하거나 1단계와 2단계에서 다른 인증서를 받는 경우 지정된 서버에 SNI가 사용 설정되어 있음을 나타냅니다.
  5. 둘 이상의 백엔드 서버에서 이를 확인하려면 다음을 수행해야 합니다. 각 백엔드 서버에 대해 위 단계를 반복합니다.

SNI가 사용 설정된 하나 이상의 백엔드 서버가 있는 경우 아래에 설명된 대로 메시지 프로세서 구성요소에서 SNI를 사용 설정합니다. 그렇지 않으면 API는 Apigee Edge를 통과하는 요청이 실패하고 TLS 핸드셰이크 실패.

에지 메시지 프로세서와 백엔드 서버 간에 SNI 사용 설정

이 섹션에서는 에지 메시지 프로세서와 백엔드 간에 SNI를 사용 설정하는 방법을 설명합니다. 있습니다. SNI는 다음의 jsse.enableSNIExtension 속성을 통해 사용 설정할 수 있습니다. 메시지 프로세서 구성 요소입니다. 메시지 프로세서의 속성을 구성하려면 다음에 설명된 구문에 따라 토큰을 Edge 구성 방법

<ph type="x-smartling-placeholder">

메시지 프로세서에서 SNI를 사용 설정하려면 다음 단계를 따르세요.

  1. jsse.enableSNIExtension 속성의 토큰 찾기
  2. 메시지 프로세서에서 SNI 사용 설정

jsse.enableSNIExtension 속성의 토큰 찾기

다음 단계에서는 jsse.enableSNIExtension 속성:

  1. 메시지 프로세서 소스에서 jsse.enableSNIExtension 속성을 검색합니다. 디렉터리를 /opt/apigee/edge-message-processor/source로 이동합니다.
    grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
    
  2. 이 명령어의 출력에는 메시지 프로세서의 속성 토큰이 표시됩니다. jsse.enableSNIExtension는 다음과 같습니다.
    /opt/apigee/edge-message-processor/source/conf/system.properties:jsse.enableSNIExtension={T}conf_system_jsse.enableSNIExtension{/T}
    

    여기서 {T}{/T} 태그 사이의 문자열은 메시지 프로세서의 .properties 파일에서 설정할 수 있습니다.

    따라서 jsse.enableSNIExtension 속성의 토큰은 다음과 같습니다.

    conf_system_jsse.enableSNIExtension
    

메시지 프로세서에서 SNI 사용 설정

다음 단계에서는 Apigee 메시지 프로세서 구성요소에서 SNI를 사용 설정하는 방법을 설명합니다.

  1. 메시지 프로세서 머신의 편집기에서 다음 파일을 엽니다. 작동하지 않는 경우 이미 존재한다면 만들어야 합니다
    /opt/apigee/customer/application/message-processor.properties
    

    예를 들어 vi에서 다음 명령어를 입력합니다.

    vi /opt/apigee/customer/application/message-processor.properties
    
  2. 속성 파일에 다음 형식의 줄을 추가합니다.
    conf_system_jsse.enableSNIExtension=true
    
  3. 변경사항을 저장합니다.
  4. 아래와 같이 이 속성 파일을 apigee 사용자가 소유하고 있는지 확인합니다.
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. 아래와 같이 메시지 프로세서를 다시 시작합니다.
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. 다음에서 SNI 구성이 업데이트되었는지 메시지 프로세서.
  7. 메시지 프로세서가 둘 이상인 경우 모든 기기에서 위의 단계를 반복하세요. 메시지 프로세서.

에지 메시지 프로세서와 백엔드 서버 간 SNI 사용 중지

일반적으로 SNI를 사용 설정한 후에는 문제가 발생하지 않습니다. 그러나 이후에 에지 메시지 프로세서와 백엔드 서버 간의 연결 문제가 있는지 SNI를 사용 설정하는 경우 언제든지 다음 단계를 수행하여 SNI를 사용 중지할 수 있습니다.

jsse.enableSNIExtension 속성을 설정하여 SNI를 사용 중지할 수 있습니다. 메시지 프로세서 구성요소에서 false로 돌아갑니다.

<ph type="x-smartling-placeholder">

메시지 프로세서에서 SNI 사용 중지

다음 단계에서는 Apigee 메시지 프로세서에서 SNI를 사용 중지하는 방법을 설명합니다.

  1. 메시지 프로세서 머신의 편집기에서 다음 파일을 엽니다. 작동하지 않는 경우 이미 존재한다면 만들어야 합니다
    /opt/apigee/customer/application/message-processor.properties
    

    예를 들어 vi에서 다음 명령어를 입력합니다.

    vi /opt/apigee/customer/application/message-processor.properties
    
  2. conf_system_jsse.enableSNIExtension=true 줄이 /opt/apigee/customer/application/message-processor.properties을 선택한 다음 다음과 같이 수정합니다. 다음과 같습니다.
    conf_system_jsse.enableSNIExtension=false
    
  3. 변경사항을 저장합니다.
  4. 아래와 같이 이 속성 파일을 apigee 사용자가 소유하고 있는지 확인합니다.
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. 아래와 같이 메시지 프로세서를 다시 시작합니다.
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. 다음에서 SNI 구성이 업데이트되었는지 메시지 프로세서.
  7. 메시지 프로세서가 2개 이상인 경우 모든 메인 스크린에서 위 단계를 반복하세요. 메시지 프로세서.

메시지 프로세서에서 SNI 구성 확인

이 섹션에서는 SNI 구성이 성공적으로 완료되었는지 확인하는 방법을 설명합니다. 메시지 프로세서에서 업데이트됩니다.

conf_system_jsse.enableSNIExtension 토큰을 사용하여 메시지 프로세서에 SNI를 구성하려면 jsse.enableSNIExtension가 새 값으로 설정되었습니다.

  1. 메시지 프로세서 머신에서 jsse.enableSNIExtension 속성을 검색합니다. /opt/apigee/edge-message-processor/conf 디렉터리에 넣고 아래와 같이 새 값으로 설정되었습니다.
    grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
    
  2. 메시지 프로세서에서 SNI 구성이 성공적으로 업데이트되면 명령어는 system.properties 파일의 새 값을 보여줍니다.

    메시지 프로세서에서 SNI를 사용 설정한 후 위 명령어의 샘플 결과입니다. 다음과 같습니다.

    /opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=true
    

    마찬가지로 서버에서 SNI를 사용 중지한 후 위 명령어의 샘플 결과는 메시지 프로세서는 다음과 같습니다.

    /opt/apigee/edge-message-processor/conf/system.properties:jsse.enableSNIExtension=false
    

    위의 출력 예에서 jsse.enableSNIExtension 속성은 가 새 값 true 또는 false로 업데이트되었습니다. system.properties입니다. 이는 SNI가 성공적으로 사용 설정되었거나 메시지 프로세서에서 비활성화됩니다.

  3. jsse.enableSNIExtension 속성의 이전 값이 계속 표시되면 적절한 섹션에 설명된 모든 단계를 따랐는지 확인하여 SNI를 올바르게 사용 중지해야 합니다 놓친 단계가 있으면 모든 단계를 올바르게 다시 반복합니다.
  4. 그래도 SNI를 사용/사용 중지할 수 없으면 Apigee Edge 지원