관리 API의 TLS 구성

기본적으로 관리 API에 TLS가 사용 중지되어 있으며 관리 서버 노드의 IP 주소와 포트 8080을 사용하여 HTTP를 통해 Edge 관리 API에 액세스합니다. 예를 들면 다음과 같습니다.

http://ms_IP:8080

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

https://ms_IP:8443

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

관리 API로 전송되는 트래픽을 암호화하려면 /opt/apigee/customer/application/management-server.properties 파일에서 설정을 구성합니다.

TLS 구성 외에도 management-server.properties 파일을 수정하여 비밀번호 유효성 검사 (비밀번호 길이 및 보안 강도)를 제어할 수 있습니다.

TLS 포트가 열려 있는지 확인

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

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

TLS 구성

/opt/apigee/customer/application/management-server.properties 파일을 수정하여 관리 API로 전송되는 트래픽에서 TLS 사용을 제어합니다. 이 파일이 없으면, 만듭니다.

관리 API에 대한 TLS 액세스를 구성하려면 다음 단계를 따르세요.

  1. TLS 인증 및 비공개 키가 포함된 키 저장소 JKS 파일을 생성합니다. 자세한 내용은 Edge 온프레미스용 TLS/SSL 구성을 참고하세요.
  2. 키 저장소 JKS 파일을 관리 서버 노드의 디렉터리(예: /opt/apigee/customer/application)에 복사합니다.
  3. JKS 파일의 소유권을 'apigee' 사용자로 변경합니다.
    chown apigee:apigee keystore.jks

    여기서 keystore.jks는 키 저장소 파일의 이름입니다.

  4. /opt/apigee/customer/application/management-server.properties 를 수정하여 다음 속성을 설정합니다. 해당 파일이 없으면 만듭니다.
    conf_webserver_ssl.enabled=true
    # Leave conf_webserver_http.turn.off set to false
    # because many Edge internal calls use HTTP.
    conf_webserver_http.turn.off=false
    conf_webserver_ssl.port=8443
    conf_webserver_keystore.path=/opt/apigee/customer/application/keystore.jks
    # Enter the obfuscated keystore password below.
    conf_webserver_keystore.password=OBF:obfuscatedPassword

    여기서 keyStore.jks는 키 저장소 파일이고 obfuscatedPassword는 난독화된 키 저장소 비밀번호입니다. 난독화된 비밀번호 생성에 대한 자세한 내용은 Edge 온프레미스용 TLS/SSL 구성을 참고하세요.

  5. 다음 명령어를 사용하여 Edge 관리 서버를 다시 시작합니다.
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

이제 Management API에서 TLS를 통한 액세스를 지원합니다.

TLS를 사용하여 Edge API에 액세스하도록 새로운 Edge UI 구성

위 절차에서 Apigee는 새로운 Edge UI가 HTTP를 통해 Edge API 호출을 계속할 수 있도록 conf_webserver_http.turn.off=false를 그대로 두는 것이 좋습니다.

다음 절차에 따라 HTTPS를 통해서만 이러한 호출을 수행하도록 새로운 Edge UI를 구성합니다.

  1. 위에서 설명한 대로 관리 API에 대한 TLS 액세스를 구성합니다.
  2. 관리 API에 TLS가 작동하는지 확인한 후 /opt/apigee/customer/application/management-server.properties를 수정하여 다음 속성을 설정합니다.
    conf_webserver_http.turn.off=true
  3. 다음 명령어를 실행하여 Edge 관리 서버를 다시 시작합니다.
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart 
  4. HTTPS를 통해 관리 서버 에 연결하도록 새로운 Edge UI 구성을 업데이트합니다. 새로운 Edge UI 구성 파일에서 다음 속성을 설정합니다.
    APIGEE_PORT_HTTP_MS=port
    MS_SCHEME=https

    여기서 port는 이전에 conf_webserver_ssl.port (예: 8443)로 지정한 포트입니다.

  5. 업데이트된 구성을 새로운 Edge UI에 적용합니다.
    /opt/apigee/apigee-setup/bin/setup.sh -p ue -f configFile

    새로운 Edge UI 구성 파일에 대한 자세한 내용은 새로운 Edge UI 구성을 참고하세요. 새로운 Edge UI 자체에 대한 HTTPS 액세스를 구성하려면 새로운 Edge UI에 대한 TLS 구성을 참고하세요.

관리 서버의 TLS 속성

다음 표에는 management-server.properties에서 설정할 수 있는 모든 TLS/SSL 속성이 나와 있습니다.

속성 설명

conf_webserver_http.port=8080

기본값은 8080입니다.

conf_webserver_ssl.enabled=false

TLS/SSL을 사용 설정/중지합니다. TLS/SSL이 사용 설정된 경우 (true) ssl.port 및 keystore.path 속성도 설정해야 합니다.

conf_webserver_http.turn.off=true

https와 함께 http를 사용 설정/중지합니다. HTTPS만 사용하려면 기본값을 true로 둡니다.

conf_webserver_ssl.port=8443

TLS/SSL 포트입니다.

TLS/SSL이 사용 설정된 경우 (conf_webserver_ssl.enabled=true) 필요합니다.

conf_webserver_keystore.path=path

키 저장소 파일의 경로입니다.

TLS/SSL이 사용 설정된 경우 (conf_webserver_ssl.enabled=true) 필요합니다.

conf_webserver_keystore.password=password

이 형식으로 난독화된 비밀번호를 사용합니다. OBF:xxxxxxxxxx

conf_webserver_cert.alias=alias

선택적 키 저장소 인증서 별칭

conf_webserver_keymanager.password=password

키 관리자에 비밀번호가 있는 경우 이 형식으로 난독화된 비밀번호 버전을 입력합니다.

OBF:xxxxxxxxxx

conf_webserver_trust.all=[false | true]

conf_webserver_trust.store.path=path

conf_webserver_trust.store.password=password

트러스트 저장소의 설정을 구성합니다. 모든 TLS/SSL 인증서를 허용할지 여부를 결정합니다 (예: 비표준 유형을 허용). 기본값은 false입니다. 트러스트 저장소의 경로 를 제공하고 이 형식으로 난독화된 트러스트 저장소 비밀번호를 입력합니다.

OBF:xxxxxxxxxx

conf_http_HTTPTransport.ssl.cipher.suites.blacklist=CIPHER_SUITE_1, CIPHER_SUITE_2

conf_http_HTTPTransport.ssl.cipher.suites.whitelist=

포함하거나 제외할 암호화 스위트를 나타냅니다. 예를 들어 암호화 알고리즘에서 취약점을 발견하면 여기에서 제외할 수 있습니다. 여러 암호화 알고리즘을 쉼표로 구분합니다.

블랙리스트를 사용하여 삭제한 암호화 알고리즘은 화이트리스트에 포함된 암호화 알고리즘보다 우선합니다.

참고: 기본적으로 블랙리스트 또는 화이트리스트가 지정되지 않은 경우 다음 Java 정규 표현식과 일치하는 암호화 알고리즘은 기본적으로 제외됩니다.

^.*_(MD5|SHA|SHA1)$
^TLS_RSA_.*$
^SSL_.*$
^.*_NULL_.*$
^.*_anon_.*$

하지만 블랙리스트를 지정하는 경우 이 필터가 재정의되며 모든 암호화 알고리즘을 개별적으로 블랙리스트에 추가해야 합니다.

암호화 알고리즘 및 암호화 아키텍처에 대한 자세한 내용은 JDK 8용 Java 암호화 아키텍처 Oracle 제공업체 문서를 참고하세요.

conf_webserver_ssl.session.cache.size=

conf_webserver_ssl.session.timeout=

다음을 결정하는 정수입니다.

  • 여러 클라이언트의 세션 정보를 저장하기 위한 TLS/SSL 세션 캐시 크기 (바이트)
  • TLS/SSL 세션이 제한 시간 초과되기 전에 지속될 수 있는 시간 (밀리초)