기본적으로 관리 서버 노드의 IP 주소와 포트 9000을 사용하여 HTTP를 통해 Edge UI에 액세스합니다. 예를 들면 다음과 같습니다.
http://ms_IP:9000
또는 다음과 같은 형식으로 액세스할 수 있도록 Edge 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 액세스를 구성합니다.
- TLS 인증서와 비공개 키가 포함된 키 저장소 JKS 파일을 생성하고 관리 서버 노드에 복사합니다. 자세한 내용은 Edge 온프레미스에 TLS/SSL 구성을 참조하세요.
- 다음 명령어를 실행하여 TLS를 구성합니다.
/opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl
- HTTPS 포트 번호(예: 9443)를 입력합니다.
- 관리 UI에 대한 HTTP 액세스를 사용 중지할지 지정합니다. 기본적으로 관리 UI는 포트 9000의 HTTP를 통해 액세스할 수 있습니다.
- 키 저장소 알고리즘을 입력합니다. 기본값은 JKS입니다.
- 키 저장소 JKS 파일의 절대 경로를 입력합니다.
이 스크립트는 파일을 관리 서버 노드의
/opt/apigee/customer/conf
디렉터리에 복사하고 파일 소유권을 'apigee'로 변경합니다. - 일반 텍스트 키 저장소 비밀번호를 입력합니다.
- 그러면 스크립트가 Edge 관리 UI를 다시 시작합니다. 다시 시작하면 관리 UI에서 TLS를 통한 액세스를 지원합니다.
이 설정은
/opt/apigee/etc/edge-ui.d/SSL.sh
에서 확인할 수 있습니다.
구성 파일을 사용하여 TLS 구성
위 절차의 대안으로 절차의 2단계에서 명령어에 구성 파일을 전달할 수 있습니다. 선택적 TLS 속성을 설정하려면 이 메서드를 사용해야 합니다.
구성 파일을 사용하려면 새 파일을 만들고 다음 속성을 추가합니다.
HTTPSPORT=9443 DISABLE_HTTP=y # Set type to PKCS12 if you are using a PKCS12 keystore 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는 저장한 파일의 전체 경로입니다.
FIPS 지원 운영체제에 PKCS12 키 저장소 사용
FIPS 지원 운영체제에서 프라이빗 클라우드용 Edge를 사용하는 경우 PKCS12 키 저장소를 사용해야 합니다. 표준 OpenSSL 명령어를 사용하여 PKCS12 키 저장소를 생성할 수 있습니다. PKCS12 키 저장소를 사용할 때는 구성 파일에서 KEY_ALGO=PKCS12
를 설정합니다.
부하 분산기에서 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를 구성하려면 다음 단계를 따르세요.
- 편집기에서
/opt/apigee/customer/application/ui.properties
파일을 엽니다. 파일이 없으면 다음과 같이 만듭니다.vi /opt/apigee/customer/application/ui.properties
ui.properties
에서 다음 속성을 설정합니다.conf/application.conf+trustxforwarded=true
ui.properties
에 변경사항을 저장합니다.- 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=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 구성에 설명된 구성 파일을 다음과 같이 수정해야 합니다.
- 편집기에서 구성 파일을 엽니다.
- 단일 TLS 프로토콜(예: TLSv1.0)을 사용 중지하려면 구성 파일에 다음을 추가합니다.
TLS_CONFIGURE=y TLS_DISABLED_ALGO="tlsv1"
TLSv1.0 및 TLSv1.1과 같은 여러 프로토콜을 사용 중지하려면 구성 파일에 다음을 추가합니다.
TLS_CONFIGURE=y TLS_DISABLED_ALGO="tlsv1, tlsv1.1"
- 변경사항을 구성 파일에 저장합니다.
- 다음 명령어를 실행하여 TLS를 구성합니다.
/opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f configFile
여기서 configFile은 구성 파일의 전체 경로입니다.
- Edge UI를 다시 시작합니다.
/opt/apigee/apigee-service/bin/apigee-service edge-ui restart
보안 쿠키 사용
Private Cloud용 Apigee Edge는 Edge UI의 응답에 Set-Cookie
헤더에 secure
플래그를 추가하는 것을 지원합니다. 이 플래그가 있는 경우 쿠키는 TLS 지원 채널을 통해서만 전송할 수 있습니다. 이 속성이 없으면 보안 여부와 관계없이 모든 채널을 통해 쿠키를 전송할 수 있습니다.
secure
플래그가 없는 쿠키를 사용하면 공격자가 쿠키를 캡처하여 재사용하거나 활성 세션을 도용할 수 있습니다. 따라서 이 설정을 사용 설정하는 것이 좋습니다.
Edge UI 쿠키의 secure
플래그를 설정하는 방법은 다음과 같습니다.
- 텍스트 편집기에서 다음 파일을 엽니다.
/opt/apigee/customer/application/ui.properties
파일이 없으면 새로 만듭니다.
- 다음 예와 같이
ui.properties
파일에서conf_application_session.secure
속성을true
로 설정합니다.conf_application_session.secure=true
- 변경사항을 저장합니다.
- 다음 예시와 같이
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