인증된 오리진 풀

인증된 오리진 풀은 IBM Cloud® Internet Services 과 오리진 서버 간의 안전한 통신을 보장하는 보안 기능입니다. 상호 TLS( mTLS )를 사용하여 CIS 및 원본 서버를 모두 인증하여 신뢰할 수 있는 IBM Cloud® Internet Services 의 요청만 서버에 액세스할 수 있도록 합니다. 이 설정은 원본 서버를 무단 액세스로부터 보호하고 웹 애플리케이션의 전반적인 보안을 강화합니다.

오리진 웹 서버는 인증된 오리진 풀을 통해 웹 요청이 IBM Cloud® Internet Services 에서 온 것인지 확인합니다. CIS 은 대부분의 웹 서버에서 지원하는 기능인 TLS 클라이언트 인증서 인증을 사용하여 CIS 과 오리진 웹 서버 간에 연결을 설정할 때 CIS 인증서를 제시합니다. 오리진 웹 서버에서 이 인증서의 유효성을 검증하면 액세스가 CIS 연결로 제한됩니다.

인증된 오리진 풀은 웹 애플리케이션 방화벽(WAF)을 활용할 때 중요합니다. 오리진 웹 서버가 인증된 오리진 풀을 적용하면 CIS 외부의 모든 HTTPS 요청이 오리진에 도달하지 못하도록 차단됩니다.

다음 옵션 중 하나를 사용하여 인증된 출처 풀을 구성할 수 있습니다:

  • CIS 인증서를 사용하여 영역 수준 인증된 출처 가져오기
  • 고객 인증서를 사용하여 영역 수준 인증된 출처 가져오기
  • 고객 인증서를 사용하여 호스트 이름별 인증된 출처 가져오기

CIS API에 삭제 또는 대체 요청이 전송되지 않는 한 클라이언트 인증서는 만료 시 CIS에서 삭제되지 않습니다. 그러나 원본에서 유효한 클라이언트 인증서만 수락하는 경우 요청은 원본에서 삭제됩니다.

인증된 오리진 풀은 SSL 모드 꺼짐(안전하지 않음) 또는 클라이언트 대 에지에서 작동하지 않습니다.

CIS 인증서가 있는 구역 레벨 인증된 오리진 풀

이 옵션을 사용하면 영역 수준에서 CIS 제공된 인증서로 요청을 인증하여 원본 서버에서 안전하게 콘텐츠에 액세스할 수 있습니다.

CIS는 다음 CA를 사용하여 인증된 오리진 풀 서비스에 대한 인증서에 서명합니다.

인증서를 다운로드하여 오리진 웹 서버의 파일에 저장하십시오(예: /path/to/origin-pull-ca.pem).

인증된 출처를 사용하려면 영역을 전역으로 당깁니다:

  1. 원본 웹 서버에 인증서를 설치하여 모든 연결을 인증합니다.
  2. 유연한 엔드투엔드 구성 CIS.
  3. 클라이언트 인증서를 수락하도록 원본 웹 서버를 구성합니다.
  4. CIS CLI를 사용하여 인증된 오리진 풀을 활성화합니다.

사용자 지정 인증서를 사용하여 영역 수준 인증된 출처 가져오기

이 옵션을 사용하면 고객이 업로드한 인증서를 영역 수준에서 인증에 사용하여 원본 서버에서 콘텐츠에 안전하게 액세스할 수 있습니다.

  1. OpenSSL, 에서 생성한 ECC 키를 사용하는 경우 먼저 인증서 파일에서 -----BEGIN EC PARAMETERS-----...-----END EC PARAMETERS----- 을 제거합니다.

  2. CIS 에 업로드하기 전에 인증서와 키가 다음 형식인지 확인합니다:

    $ cat app_example_com.pem
    -----BEGIN CERTIFICATE-----
    MIIFJDCCBAygAwIBAgIQD0ifmj/Yi5Nz2gdUySbfzANBgkqhkiG9w0BAQsFADBN
    MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E
    ...
    SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O
    OeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7
    -----END CERTIFICATE-----
    
  3. 행 끝을 \n 문자열로 바꾸십시오.

    MYCERT="$(cat app_example_com.pem|perl -pe 's/\r?\n/\\n/'|sed -e 's/..$//')" $ MYKEY="$(cat app_example_com.key|perl -pe 's/\r?\n/\\n/'| sed -e's/..$//')"
    
    echo $MYCERT -----BEGIN CERTIFICATE-----\nMIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/ 2gdUySbfzANBgkqhkiG9w0BAQsFADBN\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E...SzSHfXp5lnu/ 3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O\nOeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7\n-----END CERTIFICATE-----\n
    
  4. 페이로드를 빌드하십시오.

    $ request_body=$(< <(cat <<EOF { "certificate": "$MYCERT", "private_key": "$MYKEY" } } EOF ))

  5. CIS CLI에서 클라이언트 인증서와 개인 키를 업로드합니다.

  6. CIS CLI에서 인증된 오리진 풀을 활성화합니다.

고객 인증서를 사용하여 호스트 이름별로 인증된 출처 가져오기

이 옵션을 사용하면 호스트 이름별로 고객 인증서로 요청을 인증하여 원본 서버에서 콘텐츠에 안전하게 액세스할 수 있습니다.

호스트 이름별로 인증된 오리진 풀을 사용하도록 설정하면 지정된 호스트 이름으로 프록시된 모든 트래픽이 오리진 웹 서버에서 인증됩니다. 자체 공개 키 인프라의 클라이언트 인증서를 사용하여 CIS의 연결을 인증할 수 있습니다.

CIS에서 클라이언트 인증서를 업로드하려면 다음을 수행하십시오.

  1. OpenSSL, 에서 생성한 ECC 키를 사용하는 경우 먼저 인증서 파일에서 -----BEGIN EC PARAMETERS-----...-----END EC PARAMETERS----- 을 제거합니다.

  2. 인증서를 CIS 에 업로드하기 전에 다음 형식의 인증서인지 확인합니다.

    $ cat app_example_com.pem
    -----BEGIN CERTIFICATE-----
    MIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/2gdUySbfzANBgkqhkiG9w0BAQsFADBN
    MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E
    ...
    SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O
    OeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7
    -----END CERTIFICATE-----
    
  3. 행 끝을 \n 문자열로 바꾸십시오.

    MYCERT="$(cat app_example_com.pem|perl -pe 's/\r?\n/\\n/'|sed -e 's/..$//')" $ MYKEY="$(cat app_example_com.key|perl -pe 's/\r?\n/\\n/'|sed -e's/..$//')"
    
    echo $MYCERT -----BEGIN CERTIFICATE-----\nMIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/2gdUySbfzANBgkqhkiG9w0BAQsFADBN\nMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E...SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O\nOeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7\n-----END CERTIFICATE-----\n
    
  4. 페이로드를 빌드하십시오.

    $ request_body=$(< <(cat <<EOF { "certificate": "$MYCERT", "private_key": "$MYKEY" } } EOF ))

  5. CIS CLI에서 클라이언트 인증서와 개인 키를 업로드합니다.

  6. CIS CLI를 통해 지정된 호스트 이름에서 인증된 오리진 풀을 활성화합니다. 클라이언트 인증서를 특정 호스트 이름에 연결합니다.

중단 시간 없이 클라이언트 인증서 대체

호스트 이름의 경우:

  1. 새 인증서를 업로드합니다.
  2. 새 인증서 ID와 호스트 이름 및 활성화된 값을 연결합니다.

글로벌의 경우:

  1. 새 인증서를 업로드합니다.
  2. 새 인증서가 활성 상태인지 확인합니다.
  3. 인증서가 활성화된 후 이전 인증서를 삭제합니다.

다른 클라이언트 인증서(구역 및 호스트 이름 레벨)를 동시에 적용

  1. 영역 수준 인증된 출처 가져오기 섹션의 단계에 따라 인증서를 업로드합니다.
  2. 고객 인증서를 사용하여 호스트 이름별 인증된 출처 가져오기 섹션의 단계에 따라 여러 인증서를 업로드합니다.

Apache 및 NGINX에 설치

NGINX 또는 Apache 오리진 웹 서버에 대한 TLS 인증된 오리진 풀을 구성하려면 다음 지시시항을 사용하십시오.

Apache 설정

다음 단계에 따라 유연하게 엔드투엔드를 사용하고 원본 웹 서버 SSL 구성을 업데이트하세요.

  1. 인증된 오리진 풀 인증서 다운로드 (origin-pull-ca.pem).

  2. 인증서를 원본 웹 서버의 파일(예: /path/to/origin-pull-ca.pem)에 저장합니다.

  3. 오리진 웹 서버의 SSL 구성에 다음 행을 추가하십시오.

    SSLVerifyClient require
    SSLVerifyDepth 1
    SSLCACertificateFile /path/to/origin-pull-ca.pem
    

NGINX 설정

다음 단계에 따라 유연하게 엔드투엔드를 사용하고 원본 웹 서버 SSL 구성을 업데이트하세요.

  1. 인증된 오리진 풀 인증서 다운로드 (origin-pull-ca.pem).

  2. 인증서를 원본 웹 서버의 파일(예: /etc/nginx/certs/cloudflare.crt)에 저장합니다.

  3. 오리진 웹 서버의 SSL 구성에 다음 행을 추가하십시오.

    ssl_client_certificate /etc/nginx/certs/cloudflare.crt;
    ssl_verify_client on;