인증된 오리진 풀
인증된 오리진 풀은 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).
인증된 출처를 사용하려면 영역을 전역으로 당깁니다:
사용자 지정 인증서를 사용하여 영역 수준 인증된 출처 가져오기
이 옵션을 사용하면 고객이 업로드한 인증서를 영역 수준에서 인증에 사용하여 원본 서버에서 콘텐츠에 안전하게 액세스할 수 있습니다.
-
OpenSSL, 에서 생성한 ECC 키를 사용하는 경우 먼저 인증서 파일에서
-----BEGIN EC PARAMETERS-----...-----END EC PARAMETERS-----을 제거합니다. -
CIS 에 업로드하기 전에 인증서와 키가 다음 형식인지 확인합니다:
$ cat app_example_com.pem -----BEGIN CERTIFICATE----- MIIFJDCCBAygAwIBAgIQD0ifmj/Yi5Nz2gdUySbfzANBgkqhkiG9w0BAQsFADBN MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E ... SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O OeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7 -----END CERTIFICATE----- -
행 끝을
\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 -
페이로드를 빌드하십시오.
$ request_body=$(< <(cat <<EOF { "certificate": "$MYCERT", "private_key": "$MYKEY" } } EOF )) -
CIS CLI에서 클라이언트 인증서와 개인 키를 업로드합니다.
-
CIS CLI에서 인증된 오리진 풀을 활성화합니다.
고객 인증서를 사용하여 호스트 이름별로 인증된 출처 가져오기
이 옵션을 사용하면 호스트 이름별로 고객 인증서로 요청을 인증하여 원본 서버에서 콘텐츠에 안전하게 액세스할 수 있습니다.
호스트 이름별로 인증된 오리진 풀을 사용하도록 설정하면 지정된 호스트 이름으로 프록시된 모든 트래픽이 오리진 웹 서버에서 인증됩니다. 자체 공개 키 인프라의 클라이언트 인증서를 사용하여 CIS의 연결을 인증할 수 있습니다.
CIS에서 클라이언트 인증서를 업로드하려면 다음을 수행하십시오.
-
OpenSSL, 에서 생성한 ECC 키를 사용하는 경우 먼저 인증서 파일에서
-----BEGIN EC PARAMETERS-----...-----END EC PARAMETERS-----을 제거합니다. -
인증서를 CIS 에 업로드하기 전에 다음 형식의 인증서인지 확인합니다.
$ cat app_example_com.pem -----BEGIN CERTIFICATE----- MIIFJDCCBAygAwIBAgIQD0ifmj/Yi5NP/2gdUySbfzANBgkqhkiG9w0BAQsFADBN MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMScwJQYDVQQDEx5E ... SzSHfXp5lnu/3V08I72q1QNzOCgY1XeL4GKVcj4or6cT6tX6oJH7ePPmfrBfqI/O OeH8gMJ+FuwtXYEPa4hBf38M5eU5xWG7 -----END CERTIFICATE----- -
행 끝을
\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 -
페이로드를 빌드하십시오.
$ request_body=$(< <(cat <<EOF { "certificate": "$MYCERT", "private_key": "$MYKEY" } } EOF )) -
CIS CLI에서 클라이언트 인증서와 개인 키를 업로드합니다.
-
CIS CLI를 통해 지정된 호스트 이름에서 인증된 오리진 풀을 활성화합니다. 클라이언트 인증서를 특정 호스트 이름에 연결합니다.
중단 시간 없이 클라이언트 인증서 대체
호스트 이름의 경우:
- 새 인증서를 업로드합니다.
- 새 인증서 ID와 호스트 이름 및 활성화된 값을 연결합니다.
글로벌의 경우:
- 새 인증서를 업로드합니다.
- 새 인증서가 활성 상태인지 확인합니다.
- 인증서가 활성화된 후 이전 인증서를 삭제합니다.
다른 클라이언트 인증서(구역 및 호스트 이름 레벨)를 동시에 적용
- 영역 수준 인증된 출처 가져오기 섹션의 단계에 따라 인증서를 업로드합니다.
- 고객 인증서를 사용하여 호스트 이름별 인증된 출처 가져오기 섹션의 단계에 따라 여러 인증서를 업로드합니다.
Apache 및 NGINX에 설치
NGINX 또는 Apache 오리진 웹 서버에 대한 TLS 인증된 오리진 풀을 구성하려면 다음 지시시항을 사용하십시오.
Apache 설정
다음 단계에 따라 유연하게 엔드투엔드를 사용하고 원본 웹 서버 SSL 구성을 업데이트하세요.
-
인증된 오리진 풀 인증서 다운로드 (
origin-pull-ca.pem). -
인증서를 원본 웹 서버의 파일(예:
/path/to/origin-pull-ca.pem)에 저장합니다. -
오리진 웹 서버의 SSL 구성에 다음 행을 추가하십시오.
SSLVerifyClient require SSLVerifyDepth 1 SSLCACertificateFile /path/to/origin-pull-ca.pem
NGINX 설정
다음 단계에 따라 유연하게 엔드투엔드를 사용하고 원본 웹 서버 SSL 구성을 업데이트하세요.
-
인증된 오리진 풀 인증서 다운로드 (
origin-pull-ca.pem). -
인증서를 원본 웹 서버의 파일(예:
/etc/nginx/certs/cloudflare.crt)에 저장합니다. -
오리진 웹 서버의 SSL 구성에 다음 행을 추가하십시오.
ssl_client_certificate /etc/nginx/certs/cloudflare.crt; ssl_verify_client on;