通過配置用戶端認證,您可以在用戶端和邊緣安全加速 ESA節點間的鏈路上使能TLS雙向認證(mTLS),從而提升用戶端接入的安全等級。
用戶端認證簽發
您可以直接使用ESA提供的CA建立用戶端認證,然後將產生的用戶端認證部署在您的移動端應用程式上,我們會為每個賬戶產生一個唯一的CA,所有由ESA簽發的用戶端認證都將被節點預設為可信。
建立認證
在ESA控制台,選擇網站管理,在網站列單擊目標網站。
在左側導覽列中選擇,單擊建立認證。
根據實際需求,選擇CSR產生方式、私密金鑰類型和認證有效期間。
說明認證預設有效期間是1年。
單擊確定。
重要在彈出的認證預覽對話方塊中,單擊頁面中的“複製認證”、“複製私密金鑰”將內容複寫並粘貼到您的用戶端。關閉彈窗後不會在其他地方顯示認證及私密金鑰。
綁定網域名稱
通過將用戶端認證與特定網域名稱綁定,可以實現雙向認證(mTLS),確保只有持有正確、有效用戶端認證的使用者才能訪問特定服務或資源。
在ESA控制台,選擇網站管理,在網站列單擊目標網站。
在左側導覽列中選擇。
單擊網域名稱地區的配置,在網域名稱資訊框中填入網域名稱。
說明一次最多輸入50個網域名稱。
網域名稱必須和網站匹配。
單擊確定。
吊銷認證
您若不需要認證信任時,可以吊銷認證,具體操作如下:
在ESA控制台,選擇網站管理,在網站列單擊目標網站。
在左側導覽列中選擇。
選擇,單擊吊銷。
在彈出的對話方塊中,勾選我已確認該認證已不再使用。單擊確定吊銷。
自訂認證簽發
除了使用上述的ESA CA簽發的用戶端認證外,您還可以使用您通過私人渠道簽發的認證,此時需要對認證的CA進行配置。
自訂認證簽發目前只支援OpenAPI途徑使用,每個套餐最多上傳5個CA認證。
操作步驟
調用上傳用戶端mTLS CA認證介面,上傳CA根憑證,並記錄該OpenAPI響應中返回的認證ID。
調用網域名稱綁定介面,為CA認證綁定生效主機列表,只有綁定主機才可以使用mTLS功能並使用對應CA認證進行mTLS校正。
其他自訂mTLS認證功能相關OpenAPI如下表所示。
介面名稱
介面描述
上傳自訂簽發CA認證。
展示所有已上傳的自訂簽發CA認證。
刪除自訂簽發CA認證。
查詢某一個自訂簽發CA認證詳情。
為自訂簽發CA認證綁定網域名稱。
查詢自訂簽發CA認證綁定網域名稱情況。
攔截認證失敗請求
您可以通過配置WAF規則,對用戶端認證認證失敗的請求進行攔截。
操作步驟
在ESA控制台,選擇網站管理,在網站列單擊目標網站。
在左側導覽列中選擇進入自訂規則配置頁面。

配置WAF自訂規則。
已驗證客戶端認證設定為
。主機名稱填寫您期望攔截的網域名稱資訊。
重要請務必對主機名稱條件進行配置,否則所有未進行用戶端認證認證或用戶端認證失敗的請求都會被攔截。

將操作設定為攔截,或根據您的需求配置為其他動作。

單擊確定完成規則添加。
規則新增完成後,所有訪問規則中網域名稱的請求,如果未進行用戶端認證認證或用戶端認證失敗,將被攔截並返回403狀態代碼。
驗證環節
當用戶端不攜帶認證進行訪問時,被WAF攔截返回403。

當用戶端攜帶ESA頒發的用戶端認證進行訪問時,請求正常。
curl -v "https://example.com" --cert ./example.crt --key ./example.key * Trying 10.10.10.10... * TCP_NODELAY set * Connected to 1.zhouwei.queniuwk.cn (10.10.10.10) port 443 (#0) * Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH * successfully set certificate verify locations: * CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none * TLSv1.2 (OUT), TLS Unknown, Certificate Status (22): * TLSv1.2 (OUT), TLS handshake, Client hello (1): * TLSv1.2 (IN), TLS handshake, Server hello (2): * NPN, negotiated HTTP1.1 * TLSv1.2 (IN), TLS handshake, Certificate (11): * TLSv1.2 (IN), TLS handshake, Server key exchange (12): * TLSv1.2 (IN), TLS handshake, Request CERT (13): * TLSv1.2 (IN), TLS handshake, Server finished (14): * TLSv1.2 (OUT), TLS handshake, Certificate (11): * TLSv1.2 (OUT), TLS handshake, Client key exchange (16): * TLSv1.2 (OUT), TLS handshake, CERT verify (15): * TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1): * TLSv1.2 (OUT), TLS handshake, Next protocol (67): * TLSv1.2 (OUT), TLS handshake, Finished (20): * TLSv1.2 (IN), TLS change cipher, Change cipher spec (1): * TLSv1.2 (IN), TLS handshake, Finished (20): * SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256 * Server certificate: * subject: CN=1.zhouwei.queniuwk.cn * start date: Jul 31 00:00:00 2024 GMT * expire date: Jul 31 23:59:59 2025 GMT * subjectAltName: host "1.zhouwei.queniuwk.cn" matched cert's "1.zhouwei.queniuwk.cn" * issuer: C=US; O=DigiCert Inc; OU=www.digicert.com; CN=Encryption Everywhere DV TLS CA - G2 * SSL certificate verify ok. > GET / HTTP/1.1 > Host: 1.zhouwei.queniuwk.cn > User-Agent: curl/7.74.0 > Accept: */*