관리 UI에 TLS 구성

Private Cloud용 Edge v4.19.01

기본적으로 관리 서버 노드의 IP 주소와 포트 9000을 사용하여 HTTP를 통해 에지 관리 UI에 액세스합니다. 예를 들면 다음과 같습니다.

http://ms_IP:9000

또는 다음 형식으로 액세스할 수 있도록 관리 UI에 대한 TLS 액세스를 구성할 수 있습니다.

https://ms_IP:9443

이 예에서는 포트 9443을 사용하도록 TLS 액세스를 구성합니다. 하지만 Edge에는 이 포트 번호가 필요하지 않습니다. 다른 포트 값을 사용하도록 관리 서버를 구성할 수 있습니다. 유일한 요구사항은 방화벽이 지정된 포트를 통한 트래픽을 허용하는 것입니다.

TLS 포트가 열려 있는지 확인합니다.

이 섹션의 절차에서는 관리 서버에서 포트 9443을 사용하도록 TLS를 구성합니다. 사용하는 포트에 관계없이 포트가 관리 서버에서 열려 있는지 확인해야 합니다. 예를 들어 다음 명령어를 사용하여 열 수 있습니다.

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9443 -j ACCEPT --verbose

TLS 구성

관리 UI에 대한 TLS 액세스를 구성하려면 다음 절차를 따르세요.

  1. TLS 인증서와 비공개 키가 포함된 키 저장소 JKS 파일을 생성하여 관리 서버 노드에 복사합니다. 자세한 내용은 Edge On Premises의 TLS/SSL 구성을 참조하세요.
  2. /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl
    명령어를 실행하여 TLS를 구성합니다.
  3. HTTPS 포트 번호(예: 9443)를 입력합니다.
  4. 관리 UI에 대한 HTTP 액세스를 사용 중지할지 지정합니다. 기본적으로 관리 UI는 포트 9000에서 HTTP를 통해 액세스할 수 있습니다.
  5. 키 저장소 알고리즘을 입력합니다. 기본값은 JKS입니다.
  6. 키 저장소 JKS 파일의 절대 경로를 입력하세요.

    스크립트가 파일을 관리 서버 노드의 /opt/apigee/customer/conf 디렉터리에 복사하고 파일의 소유권을 'apigee'로 변경합니다.

  7. 일반 텍스트 키 저장소 비밀번호를 입력합니다.
  8. 그런 다음 스크립트가 에지 관리 UI를 다시 시작합니다. 재시작 후 관리 UI는 TLS를 통한 액세스를 지원합니다.

    이 설정은 /opt/apigee/etc/edge-ui.d/SSL.sh에서 확인할 수 있습니다.

구성 파일을 사용하여 TLS 구성

위 절차의 대안으로 절차의 2단계에서 명령어에 구성 파일을 전달할 수 있습니다. 선택사항인 TLS 속성을 설정하려면 이 메서드를 사용해야 합니다.

구성 파일을 사용하려면 새 파일을 만들고 다음 속성을 추가합니다.

HTTPSPORT=9443
DISABLE_HTTP=y
KEY_ALGO=JKS
KEY_FILE_PATH=/opt/apigee/customer/application/mykeystore.jks
KEY_PASS=clearTextKeystorePWord

파일을 원하는 이름으로 로컬 디렉터리에 저장합니다. 그런 후 다음 명령어를 사용하여 TLS를 구성합니다.

/opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f configFile

여기서 configFile은 저장한 파일의 전체 경로입니다.

부하 분산기에서 TLS가 종료될 때 Edge UI 구성

요청을 Edge UI로 전달하는 부하 분산기가 있다면 부하 분산기에서 TLS 연결을 종료한 후 부하 분산기가 HTTP를 통해 Edge UI로 요청을 전달하도록 선택할 수 있습니다. 이 구성은 지원되지만 이에 따라 부하 분산기와 Edge UI를 구성해야 합니다.

Edge UI가 사용자 생성 시 비밀번호를 설정하기 위해 사용자에게 이메일을 보내거나 사용자가 분실된 비밀번호 재설정을 요청하는 경우 추가 구성이 필요합니다. 이 이메일에는 사용자가 비밀번호를 설정하거나 재설정하기 위해 선택한 URL이 포함됩니다. 기본적으로 Edge UI가 TLS를 사용하도록 구성되지 않은 경우 생성된 이메일의 URL은 HTTPS가 아닌 HTTP 프로토콜을 사용합니다. HTTPS를 사용하는 이메일 주소를 생성하도록 부하 분산기와 Edge UI를 구성해야 합니다.

부하 분산기를 구성하려면 Edge UI로 전달되는 요청에 다음 헤더를 설정해야 합니다.

X-Forwarded-Proto: https

Edge UI를 구성하려면 다음 안내를 따르세요.

  1. 편집기에서 /opt/apigee/customer/application/ui.properties 파일을 엽니다. 파일이 없으면 다음과 같이 만듭니다.
    vi /opt/apigee/customer/application/ui.properties
  2. ui.properties에 다음 속성을 설정합니다.
    conf/application.conf+trustxforwarded=true
  3. ui.properties에 변경사항을 저장합니다.
  4. Edge UI를 다시 시작합니다.
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

선택적 TLS 속성 설정

Edge UI는 다음을 설정하는 데 사용할 수 있는 선택적 TLS 구성 속성을 지원합니다.

  • 기본 TLS 프로토콜
  • 지원되는 TLS 프로토콜 목록
  • 지원되는 TLS 알고리즘
  • 지원되는 TLS 암호화

이러한 선택적 매개변수는 구성 파일을 사용하여 TLS 구성에 설명된 대로 구성 파일에서 다음 구성 속성을 설정한 경우에만 사용할 수 있습니다.

TLS_CONFIGURE=y

다음 표에서는 이러한 속성을 설명합니다.

속성 설명
TLS_PROTOCOL Edge UI의 기본 TLS 프로토콜을 정의합니다. 기본적으로 TLS 1.2입니다. 유효한 값은 TLSv1.2, TLSv1.1, TLSv1입니다.
TLS_ENABLED_PROTOCOL

사용 설정된 프로토콜 목록을 쉼표로 구분된 배열로 정의합니다. 예를 들면 다음과 같습니다.

TLS_ENABLED_PROTOCOL=[\"TLSv1.2\", \"TLSv1.1\", \"TLSv1\"]

" 문자를 이스케이프 처리해야 합니다.

기본적으로 모든 프로토콜이 활성화되어 있습니다.

TLS_DISABLED_ALGO

사용 중지된 암호화 스위트를 정의하며, TLS 핸드셰이크에 작은 키 크기가 사용되지 않도록 방지하는 데에도 사용할 수 있습니다. 기본값은 없습니다.

TLS_DISABLED_ALGO에 전달된 값은 여기에 설명된 대로 허용되는 jdk.tls.disabledAlgorithms 값에 해당합니다. 그러나 TLS_DISABLED_ALGO를 설정할 때는 공백 문자를 이스케이프 처리해야 합니다.

TLS_DISABLED_ALGO=EC\ keySize\ <\ 160,RSA\ keySize\ <\ 2048

TLS_ENABLED_CIPHERS

사용 가능한 TLS 암호화 목록을 쉼표로 구분된 배열로 정의합니다. 예를 들면 다음과 같습니다.

TLS_ENABLED_CIPHERS=[\"TLS_DHE_RSA_WITH_AES_128_CBC_SHA\",
\"TLS_DHE_DSS_WITH_AES_128_CBC_SHA\"]

" 문자를 이스케이프 처리해야 합니다.

사용 설정된 암호화의 기본 목록은 다음과 같습니다.

"TLS_DHE_RSA_WITH_AES_256_CBC_SHA",
"TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
"TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
"TLS_RSA_WITH_AES_256_CBC_SHA",
"TLS_RSA_WITH_AES_128_CBC_SHA",
"SSL_RSA_WITH_RC4_128_SHA",
"SSL_RSA_WITH_RC4_128_MD5",
"TLS_EMPTY_RENEGOTIATION_INFO_SCSV"

여기에서 사용 가능한 암호화 목록을 찾아보세요.

TLS 프로토콜 사용 중지

TLS 프로토콜을 사용 중지하려면 구성 파일을 사용하여 TLS 구성에 설명된 대로 구성 파일을 수정해야 합니다.

  1. 편집기에서 구성 파일을 엽니다.
  2. 단일 TLS 프로토콜(예: TLSv1.0)을 사용 중지하려면 구성 파일에
    TLS_CONFIGURE=y
    TLS_DISABLED_ALGO="tlsv1"
    을 추가합니다.

    여러 프로토콜(예: TLSv1.0 및 TLSv1.1)을 사용 중지하려면 구성 파일에 다음을 추가합니다.

    TLS_CONFIGURE=y
    TLS_DISABLED_ALGO="tlsv1, tlsv1.1"
  3. 구성 파일에 변경사항을 저장합니다.
  4. /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f configFile
    명령어를 실행하여 TLS를 구성합니다.

    여기서 configFile는 구성 파일의 전체 경로입니다.

  5. Edge UI를 다시 시작합니다.
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

보안 쿠키 사용

프라이빗 클라우드용 Apigee Edge에서는 Edge UI의 응답을 위해 Set-Cookie 헤더에 secure 플래그를 추가할 수 있습니다. 이 플래그가 있으면 TLS 지원 채널을 통해서만 쿠키를 전송할 수 있습니다. 쿠키가 없는 경우 쿠키는 보안 여부와 관계없이 모든 채널을 통해 전송될 수 있습니다.

secure 플래그가 없는 쿠키를 사용하면 공격자가 쿠키를 캡처하여 재사용하거나 활성 세션을 도용할 수 있습니다. 따라서 이 설정을 사용 설정하는 것이 좋습니다.

Edge UI 쿠키의 secure 플래그를 설정하려면 다음 안내를 따르세요.

  1. 텍스트 편집기에서 다음 파일을 엽니다.
    /opt/apigee/customer/application/ui.properties

    파일이 없으면 새로 만듭니다.

  2. 다음 예에 표시된 것처럼 ui.properties 파일에서 conf_application_session.secure 속성을 true로 설정합니다.
    conf_application_session.secure=true
  3. 변경사항을 저장합니다.
  4. 다음 예에 표시된 것처럼 apigee-serice 유틸리티를 사용하여 Edge UI를 다시 시작합니다.
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

변경사항이 작동하는지 확인하려면 curl와 같은 유틸리티를 사용하여 Edge UI의 응답 헤더를 확인합니다. 예를 들면 다음과 같습니다.

curl -i -v https://edge_UI_URL

헤더에는 다음과 같은 줄이 포함되어야 합니다.

Set-Cookie: secure; ...

Edge UI에서 TLS 사용 중지

Edge UI에서 TLS를 사용 중지하려면 다음 명령어를 사용하세요.

/opt/apigee/apigee-service/bin/apigee-service edge-ui disable-ssl