鑑別來源取回
Authenticated Origin Pull 是一項安全功能,可協助確保 IBM Cloud® Internet Services 與您的 origin 伺服器之間的安全通訊。 它使用相互 TLS ( mTLS ) 來驗證 CIS 和原始伺服器,這只允許來自受信任的 IBM Cloud® Internet Services 的要求存取您的伺服器。 此設定可保護您的原始伺服器免受未經授權的存取,並可增強網路應用程式的整體安全性。
起源網路伺服器透過已驗證的起源拉取,驗證網路請求來自 IBM Cloud® Internet Services。CIS 使用 TLS 用戶端證書驗證,這是大多數網路伺服器支援的功能,當它在 CIS 和起源網路伺服器之間建立連線時,會出示 CIS 證書。 透過在原點 Web 伺服器驗證此憑證,存取權會限制為 CIS 連線。
當您使用 Web 應用程式防火牆 (WAF) 時,經過驗證的來源拉取非常重要。 在您的 origin 網路伺服器強制執行驗證的 origin 拉取之後,CIS 以外的所有 HTTPS 請求都會被阻擋,無法到達您的 origin。
您可以使用下列其中一個選項,設定已驗證的來源拉取:
- 使用 CIS 憑證來取回區域層次鑑別來源
- 使用客戶憑證取回區域層次鑑別來源
- 使用客戶憑證取回每個主機名稱的鑑別來源
用戶端憑證不會在到期時從 CIS 中刪除,除非將刪除或取代要求傳送至 CIS API。 不過,如果您的原點只接受有效的用戶端憑證,則會在原點捨棄要求。
「鑑別原點取回」在 SSL 模式關閉 (不安全) 或 用戶端至邊緣中無法運作。
使用 CIS 憑證進行區域層次鑑別來源取回
此選項允許在區域層級使用 CIS 提供的憑證認證請求,從原始伺服器安全存取內容。
CIS 使用下列 CA 來簽署已鑑別原點取回服務的憑證:
下載憑證並將檔案儲存在原始 Web 伺服器上,例如在 /path/to/origin-pull-ca.pem 中。
若要啟用鑑別來源,請在區域上廣域取回:
- 在原始 Web 伺服器上安裝憑證,以驗證所有連線。
- 使用 端對端彈性 配置 CIS。
- 設定原始 Web 伺服器接受用戶端憑證。
- 使用 CIS CLI 啟用 認證的原點拉取。
使用自訂憑證的區域層級驗證來源拉取
此選項透過在區域層級使用客戶上載的憑證進行驗證,從原始伺服器啟用安全的內容存取。
-
如果您使用由 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 啟用 已驗證的來源拉取。
使用客戶憑證進行每主機名稱認證的原點拉取
此選項允許來自原始伺服器的安全內容存取,方法是以每個主機名稱為基礎,使用客戶憑證認證要求。
當您啟用每個主機名稱的驗證來源拉取功能時,所有指向指定主機名稱的代理流量都會在來源 Web 伺服器上進行驗證。 您可以從自己的公開金鑰基礎架構使用用戶端憑證來鑑別來自 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 及主機名稱和已啟用的值。
若為廣域:
- 上傳新憑證。
- 檢查新憑證是否處於 Active 狀態。
- 證書啟用後,刪除舊的證書。
同步套用不同的用戶端憑證 (在區域及主機名稱層次)
- 按照 Zone-level authenticated origin pull(區域層級驗證的原點拉動 )部分的步驟上載憑證。
- 按照 使用客戶憑證的每主機名稱認證來源拉取 部分中的步驟上載多個憑證。
在 Apache 和 NGINX 上安裝
使用下列指示來配置 NGINX 或 Apache 原點 Web 伺服器的 TLS 鑑別原點取回。
設定 Apache
使用端對端彈性,並透過以下步驟更新原始 Web 伺服器 SSL 設定。
-
下載已驗證的來源拉取憑證 (
origin-pull-ca.pem)。 -
將憑證儲存在您的原始網站伺服器上的檔案中,例如
/path/to/origin-pull-ca.pem。 -
將下列各行新增至原點 Web 伺服器的 SSL 配置:
SSLVerifyClient require SSLVerifyDepth 1 SSLCACertificateFile /path/to/origin-pull-ca.pem
設定 NGINX
使用端對端彈性,並透過以下步驟更新原始 Web 伺服器 SSL 設定。
-
下載已驗證的來源拉取憑證 (
origin-pull-ca.pem)。 -
將憑證儲存在您的原始網站伺服器上的檔案中,例如
/etc/nginx/certs/cloudflare.crt。 -
將下列各行新增至原點 Web 伺服器的 SSL 配置:
ssl_client_certificate /etc/nginx/certs/cloudflare.crt; ssl_verify_client on;