Apigee Edge 문서입니다.
Go to the
Apigee X 문서로 이동합니다. info
서버 이름 표시 (SNI)를 사용하면 여러 HTTPS 백엔드 서버가 동일한 IP 주소와 포트에서 제공될 수 있으며, 이러한 백엔드 서버가 동일한 TLS 인증서를 사용하도록 요구하지 않습니다. 이는 TLS 프로토콜의 확장 프로그램입니다. 클라이언트에서 SNI가 사용 설정되면 클라이언트는 초기 TLS 핸드셰이크의 일부로 백엔드 서버의 호스트 이름을 전달합니다. 이를 통해 TLS 서버는 클라이언트의 요청을 검증하는 데 사용할 TLS 인증서를 결정할 수 있습니다.
기본적으로 SNI는 기존 백엔드 서버와의 이전 버전과의 호환성을 보장하기 위해 Edge for Private Cloud의 메시지 프로세서 구성요소에서 사용 중지됩니다. 백엔드 서버가 SNI를 지원하도록 구성된 경우 메시지 프로세서 구성요소에서 SNI를 사용 설정해야 합니다. 그렇지 않으면 Apigee Edge를 통과하는 API 요청이 TLS 핸드셰이크 실패로 인해 실패합니다.
이 문서에서는 다음 작업을 실행하는 방법을 설명합니다.
- 백엔드 서버에서 SNI가 사용 설정되어 있는지 확인합니다.
- SNI를 지원하는 백엔드 서버와 통신하기 위해 메시지 프로세서에서 SNI를 사용 설정합니다.
- 필요한 경우 메시지 프로세서에서 SNI를 사용 중지합니다.
- 메시지 프로세서에서 SNI 구성이 업데이트되었는지 확인합니다.
시작하기 전에
- SNI에 익숙하지 않은 경우 Edge에서 SNI 사용을 읽어보세요.
- Private Cloud에서 Edge 구성에 익숙하지 않은 경우 Edge 구성 방법을 읽어보세요.
SNI 사용 설정 서버 식별
이 섹션에서는 백엔드 서버에서 SNI가 사용 설정되어 있는지 확인하는 방법을 설명합니다.
-
아래와 같이
openssl명령어를 실행하고 관련 서버 호스트 이름 (Edge 라우터 또는 백엔드 서버)에 서버 이름을 전달하지 않고 연결해 봅니다.openssl s_client -connect hostname:port
-
아래와 같이 인증서를 가져오거나
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
-
openssl명령어를 실행하고 아래와 같이 서버 이름을 전달하여 관련 서버 호스트 이름 (Edge 라우터 또는 백엔드 서버)에 연결해 봅니다.openssl s_client -connect hostname:port -servername hostname
- 1단계에서 핸드셰이크 실패가 발생하거나 1단계와 2단계에서 다른 인증서를 가져오는 경우 지정된 서버에서 SNI가 사용 설정되어 있음을 나타냅니다.
- 둘 이상의 백엔드 서버에서 이를 확인하려면 각 백엔드 서버에 대해 위의 단계를 반복해야 합니다.
SNI가 사용 설정된 백엔드 서버가 하나 이상 있는 경우 아래 설명대로 메시지 프로세서 구성요소에서 SNI를 사용 설정해야 합니다. 그렇지 않으면 Apigee Edge를 통과하는 API 요청이 TLS 핸드셰이크 실패로 인해 실패합니다.
Edge 메시지 프로세서와 백엔드 서버 간에 SNI 사용 설정
이 섹션에서는 Edge 메시지 프로세서와 백엔드
서버 간에 SNI를 사용 설정하는 방법을 설명합니다. SNI는 메시지 프로세서 구성요소의 jsse.enableSNIExtension 속성을 통해
사용 설정할 수 있습니다. 메시지 프로세서에서 속성을 구성하려면 Edge 구성 방법에 설명된 구문에 따라 토큰을 사용합니다.
메시지 프로세서에서 SNI를 사용 설정하려면 다음 단계를 수행합니다.
jsse.enableSNIExtension 속성의 토큰 찾기
다음 단계에서는
jsse.enableSNIExtension 속성의 토큰을 찾는 방법을 설명합니다.
-
다음 명령어를 사용하여 메시지 프로세서 소스
디렉터리
/opt/apigee/edge-message-processor/source에서jsse.enableSNIExtension속성을 검색합니다.grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/source
-
이 명령어의 출력은 다음과 같이 메시지 프로세서 속성
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를 사용 설정하는 방법을 설명합니다.
- 메시지 프로세서 머신에서 편집기로 다음 파일을 엽니다. 파일이 아직 없는 경우 파일을 만듭니다.
/opt/apigee/customer/application/message-processor.properties
예를 들어
vi를 사용하여 파일을 열려면 다음 명령어를 입력합니다.vi /opt/apigee/customer/application/message-processor.properties
-
다음 형식으로 속성 파일에 줄을 추가합니다.
conf_system_jsse.enableSNIExtension=true
- 변경사항을 저장합니다.
-
이 속성 파일이 아래와 같이
apigee사용자가 소유하고 있는지 확인합니다.chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
아래와 같이 메시지 프로세서를 다시 시작합니다.
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- 메시지 프로세서에서 SNI 구성이 업데이트되었는지 확인합니다.
- 메시지 프로세서가 두 개 이상인 경우 모든 메시지 프로세서에서 위의 단계를 반복합니다.
Edge 메시지 프로세서와 백엔드 서버 간에 SNI 사용 중지
일반적으로 SNI를 사용 설정한 후에는 문제가 발생하지 않습니다. 하지만 SNI를 사용 설정한 후 Edge 메시지 프로세서와 백엔드 서버 간에 연결 문제가 발생하는 경우 다음 단계를 수행하여 언제든지 SNI를 사용 중지할 수 있습니다.
SNI는 메시지 프로세서 구성요소에서 jsse.enableSNIExtension
속성을 false로 다시 설정하여 사용 중지할 수 있습니다.
메시지 프로세서에서 SNI 사용 중지
다음 단계에서는 Apigee 메시지 프로세서에서 SNI를 사용 중지하는 방법을 설명합니다.
-
메시지 프로세서 머신에서 편집기로 다음 파일을 엽니다. 파일이 아직 없는 경우 파일을 만듭니다.
/opt/apigee/customer/application/message-processor.properties
예를 들어
vi를 사용하여 파일을 열려면 다음 명령어를 입력합니다.vi /opt/apigee/customer/application/message-processor.properties
-
/opt/apigee/customer/application/message-processor.properties에conf_system_jsse.enableSNIExtension=true줄이 있는 경우 다음과 같이 수정합니다.conf_system_jsse.enableSNIExtension=false
- 변경사항을 저장합니다.
-
이 속성 파일이 아래와 같이
apigee사용자가 소유하고 있는지 확인합니다.chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
아래와 같이 메시지 프로세서를 다시 시작합니다.
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- 메시지 프로세서에서 SNI 구성이 업데이트되었는지 확인합니다.
- 메시지 프로세서가 두 개 이상인 경우 모든 메시지 프로세서에서 위의 단계를 반복합니다.
메시지 프로세서에서 SNI 구성 확인
이 섹션에서는 메시지 프로세서에서 SNI 구성이 업데이트되었는지 확인하는 방법을 설명합니다.
메시지 프로세서에서 SNI를 구성하는 데 conf_system_jsse.enableSNIExtension 토큰을 사용하더라도 실제 속성 jsse.enableSNIExtension이 새 값으로 설정되었는지 확인해야 합니다.
-
메시지 프로세서 머신에서
jsse.enableSNIExtension/opt/apigee/edge-message-processor/conf디렉터리에서 속성을 검색하고 아래와 같이 새 값으로 설정되었는지 확인합니다.grep -ri "jsse.enableSNIExtension" /opt/apigee/edge-message-processor/conf
-
메시지 프로세서에서 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이(가)system.properties에서 새 값true또는false로 업데이트되었음을 확인합니다. 이는 메시지 프로세서에서 SNI가 사용 설정 또는 사용 중지되었음을 나타냅니다. -
jsse.enableSNIExtension속성의 이전 값이 계속 표시되면 SNI를 올바르게 사용 설정 또는 사용 중지하기 위해 적절한 섹션에 설명된 모든 단계를 따랐는지 확인합니다. 단계를 누락한 경우 모든 단계를 다시 올바르게 반복합니다. - 그래도 SNI를 사용 설정/사용 중지할 수 없는 경우 Apigee Edge 지원팀에 문의하세요.