OSS允許將自有網域名稱綁定至Bucket、存取點或對象FC存取點,替代預設網域名稱訪問OSS資源。綁定後,可以使用自訂網域名實現檔案線上預覽、提升品牌一致性,並靈活配置HTTPS認證和CDN加速等能力。
自北京時間2025年3月20日00:00:00起新開通OSS服務的使用者,若通過OSS預設公網(外網)Endpoint(如oss-cn-hangzhou.aliyuncs.com)訪問中國內地地區Bucket的資料類API,請求將被拒絕,並返回錯誤碼PublicEndpointForbidden(HTTP狀態代碼400,EC碼0048-00000401)。如需繼續通過公網調用此類API,必須使用自訂網域名。詳情參見升級公告。
工作原理
自訂網域名綁定至OSS的實現基於DNS的CNAME(Canonical Name)記錄。通過將自訂網域名指向OSS提供的預設網域名稱,當使用者訪問自訂網域名時,DNS系統將其解析到對應的OSS訪問網域名稱,從而實現對OSS資源的訪問。
配置過程分為三步:綁定網域名稱、配置CNAME解析、驗證訪問。OSS支援將自訂網域名綁定至以下4種訪問網域名稱,請根據業務需求選擇:
情境 | 綁定方式 | 說明 |
託管靜態資源、檔案線上預覽 | 綁定至外網訪問網域名稱 | 最常用的方式,滿足基礎檔案訪問需求 |
跨國或遠距離加速傳輸 | 綁定至傳輸加速網域名稱 | 需先開啟傳輸加速功能 |
開啟自訂網域名訪問
步驟一:綁定自訂網域名
前往Bucket列表,單擊目標Bucket名稱,然後在左側功能表列單擊,單擊綁定域名。
輸入需要綁定的網域名稱。系統將自動檢測是否滿足綁定條件,網域名稱屬於當前賬戶時可直接單擊確認綁定完成綁定。網域名稱屬於其他阿里雲賬戶或其他網域名稱服務 (DNS)商時,需要驗證網域名稱所有權,以阿里雲購買的網域名稱為例:
使用網域名稱歸屬的阿里雲帳號登入Alibaba Cloud DNS控制台,單擊目標網域名稱操作列的解析设置。
單擊添加记录,按照下方配置列表填寫記錄資訊,其餘配置項可保持預設設定。
记录类型:選擇TXT。
主机记录:主機記錄僅填寫首碼部分,如
_dnsauth。如果綁定的是子網域名稱,還需要加上子網域名稱首碼,如綁定image.example.com,則主機記錄填寫_dnsauth.image。记录值:填寫OSS控制台顯示的記錄值。
單擊确定,如彈出解析变更确认視窗,再次單擊确定。
返回OSS控制台,單擊驗證網域名稱所有權並綁定,將網域名稱綁定至Bucket。
網域名稱解析記錄添加後需要一段時間才會生效,如果頁面報錯,請等待幾分鐘後重試。TXT記錄用於驗證對網域名稱的所有權,驗證成功後即可刪除,不影響後續使用。
步驟二:配置CNAME解析
將網域名稱綁定後,自訂網域名尚未生效,需要配置CNAME解析記錄將自訂網域名指向OSS訪問網域名稱。
請務必先完成步驟一的網域名稱綁定,再配置CNAME解析,否則通過自訂網域名訪問OSS時將無法正確識別Bucket,返回非預期內容。後續解除綁定關係後,也請及時刪除CNAME記錄。
網域名稱屬於當前阿里雲賬戶時,可在控制台選擇自動添加 CNAME 記錄,系統會自動完成CNAME配置。其他情況需手動設定,以阿里雲購買的網域名稱為例:
如果提示存在相同的主機記錄導致無法自動添加,請登入Alibaba Cloud DNS控制台確認該CNAME記錄是否還在使用,不再使用可刪除後重新添加。
使用網域名稱歸屬的阿里雲帳號登入Alibaba Cloud DNS控制台,單擊目標網域名稱操作列的解析设置。
單擊添加记录,按照下方配置列表填寫記錄資訊,其餘配置項可保持預設設定。
记录类型:選擇CNAME。
主机记录:如果綁定的是主網域名稱,填寫
@;如果綁定的是子網域名稱,填寫子網域名稱首碼,如綁定image.example.com,則主機記錄填寫image。說明若已存在同名的A記錄,需先刪除A記錄後再添加CNAME記錄,兩者不能共存於同一主機記錄。如果A記錄正在使用(如指向ECS或WAF),建議使用一個新的子網域名稱綁定OSS,避免影響現有業務。
记录值:根據業務情境填寫對應的目標網域名稱。
情境
記錄值
外網訪問
CNAME網域名稱(推薦,如
example-bucket.<region-id>.taihangcda.cn)或外網訪問網域名稱傳輸加速訪問
傳輸加速網域名稱,如
example-bucket.oss-accelerate.aliyuncs.com
單擊确定,如彈出解析变更确认視窗,再次單擊确定。
DNS解析的生效時間取決於記錄的TTL(存留時間)設定,完全生效通常需要幾分鐘到幾小時。配置後立即訪問無效屬於正常現象,請耐心等待或嘗試清除本地DNS緩衝。可通過dig example.com CNAME +short命令查看CNAME記錄的指向和生效情況。
步驟三:驗證自訂網域名訪問
完成網域名稱綁定和CNAME配置後,通過以下方式驗證自訂網域名是否生效。
公用讀取和公用讀寫Bucket
在瀏覽器中直接通過URL訪問。如 http://image.example.com/example.jpg 表示訪問Bucket根目錄的檔案 example.jpg。
私人Bucket
訪問私人讀寫權限的Bucket需要在檔案URL中包含簽名資訊。以下操作示範如何通過控制台擷取檔案的簽名URL,關於簽名的詳細資料和產生方式請參見簽名版本4(推薦)。
前往Bucket列表,單擊目標Bucket。
單擊需要訪問的目標檔案右側操作列的詳情。
網域名稱選擇自訂網域名,並選擇綁定的自訂網域名,然後單擊復制文件 URL。
在瀏覽器中訪問修改後的URL。
應用於生產環境
最佳實務
安全傳輸:啟用HTTPS
為自訂網域名配置SSL認證,強制使用HTTPS訪問。HTTPS協議通過TLS/SSL加密傳輸資料,防止資料在傳輸過程中被竊取或篡改,避免瀏覽器顯示不安全警告,提升使用者信任度和品牌形象。
跨域訪問:配置CORS規則
當前端應用(如部署在
https://web.example.com)需要訪問OSS資源(如https://oss.example.com)時,必須配置CORS跨域規則,允許來自應用網域名稱的跨域請求,確保前端應用正常訪問OSS資源。平滑上線:零停機網域名稱切換
當需要將Bucket網域名稱切換到綁定的自訂網域名時,採用以下分階段切換策略可避免服務中斷:
準備階段:完成網域名稱綁定和CNAME配置,在測試環境中驗證功能和效能。
灰階發布階段(建議在業務低峰期):將部分業務流量切換至自訂網域名,逐步放量。
驗證階段:監控訪問日誌和錯誤率,確認服務正常。
全量發布階段:將全量流量切換至自訂網域名,完成遷移。
復原預案:如遇問題,立即復原至Bucket網域名稱,分析問題根因後重新部署。
效能與安全:通過子網域名稱隔離用途
根據不同業務用途分配不同子網域名稱,如網頁靜態資源使用
static.example.com,圖片資源使用images.example.com。通過網域名稱隔離實現瀏覽器並發串連數最佳化、獨立緩衝策略配置和精微調權限控制。功能擴充:託管靜態網站
如果目標是利用OSS託管完整的靜態網站(包含HTML、CSS、JS等檔案),在綁定自訂網域名後,還需進一步配置靜態網站託管功能,實現預設首頁、404錯誤頁面等網站基礎功能。
效能最佳化:配置CDN加速
對於需要向全球使用者分發靜態資源的情境,建議進一步配置CDN加速服務,通過全球分布的邊緣節點緩衝內容,獲得更低的訪問延遲和更優的使用者體驗。
風險防範
流量盜用防護:配置Referer防盜鏈
為防止圖片、視頻等資源被其他網站盜用,產生不必要的流量費用和頻寬消耗,請配置Referer防盜鏈。通過白名單機制限制訪問來源,有效控製成本並保護資源不被濫用。
行為審計與排障:啟用訪問日誌
啟用OSS即時日誌查詢,記錄所有訪問請求的詳細資料,包括訪問時間、來源IP、請求類型、響應狀態等,便於安全審計、效能分析和異常排查。
配額與限制
綁定數量:每個Bucket最多可以綁定100個自訂網域名。
網域名稱唯一性:一個自訂網域名在同一時間只能綁定到一個Bucket。如需改綁,必須先從原Bucket解除綁定,確保網域名稱指向的唯一性和訪問路徑的明確性。
說明對於部分使用舊版圖片處理功能的使用者,已用於圖片處理的網域名稱不能再綁定到Bucket。新版圖片處理功能無此限制。
網域名稱類型:不支援綁定中文網域名稱和泛網域名稱(如
*.example.com),確保DNS解析的穩定性和相容性。說明通過CDN加速OSS時,允許綁定泛網域名稱,但該網域名稱不會在OSS管理主控台顯示。
常見問題
如何控制通過自訂網域名訪問檔案時的預覽或下載行為?
檔案的預覽或下載行為由HTTP回應標頭Content-Disposition決定。使用OSS預設提供的網域名稱訪問時,OSS會為安全起見強制添加Content-Disposition: attachment下載頭;而通過自訂網域名訪問時,OSS不會添加此頭,從而使行為變得可控。
實現預覽:使用自訂網域名訪問,並確保檔案中繼資料中沒有設定
Content-Disposition: attachment以及檔案的Content-Type(MIME類型)正確匹配檔案格式。對於瀏覽器原生不支援預覽的檔案格式,可通過以下方式擴充預覽能力:對於.doc、.ppt、.pdf等辦公檔案,整合WebOffice線上預覽服務實現文檔預覽。
對於.mov等特殊格式視頻檔案,使用視頻轉碼服務轉換為Web相容格式後實現預覽。
安裝對應檔案類型的瀏覽器預覽外掛程式。
強制下載:為檔案的中繼資料手動設定
Content-Disposition為attachment,瀏覽器將忽略預覽嘗試並直接下載檔案。說明<video>或<audio>標籤會優先播放媒體,可能會忽略attachment的下載建議。
綁定網域名稱時校正失敗,提示網域名稱綁定在其他Bucket上怎麼辦?
遇到網域名稱已被其他Bucket綁定的情況,可採用以下方案:
為當前業務使用一個新的子網域名稱。如網域名稱
example.com已被其他Bucket綁定,可使用image.example.com等新的子網域名稱進行綁定,通過網域名稱層級實現業務隔離。將網域名稱從原有Bucket解除綁定,再綁定到目標Bucket。解除綁定操作步驟如下:
通過API綁定網域名稱時返回NeedVerifyDomainOwnership錯誤怎麼辦?
此錯誤表示未驗證網域名稱所有權。可通過以下方式解決:
調用CreateCnameToken介面建立網域名稱所有權驗證所需的
CnameToken。說明CnameToken預設在建立完成後72小時內到期。如果在到期時間內重複建立,則返回已存在的CnameToken。在網域名稱服務 (DNS)供應商處配置TXT記錄完成網域名稱所有權驗證。
調用PutCname介面綁定自訂網域名。
配置完成後訪問自訂網域名無效或仍訪問到舊地址?
這很可能是由於本地及電訊廠商DNS緩衝導致的解析延遲。為提升解析效率,DNS系統各層級節點會依據TTL值將網域名稱解析結果緩衝一段時間。當CNAME記錄變更後,若緩衝尚未到期,訪問請求仍可能被指向舊的地址。建議等待十分鐘後再嘗試,或手動清除本地DNS緩衝:
Windows
ipconfig /flushdnsmacOS
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponderLinux
sudo systemd-resolve --flush-caches添加CNAME記錄時提示與已有A記錄衝突怎麼辦?
根據DNS協議規範,同一主機記錄下CNAME記錄不能與A記錄共存。如果當前網域名稱已有A記錄指向其他服務(如ECS、WAF),有以下兩種解決方案:
使用一個新的子網域名稱綁定OSS。例如,主網域名稱
example.com已有A記錄,可使用oss.example.com綁定OSS,兩者互不干擾。如果必須使用當前網域名稱,需先刪除A記錄再添加CNAME記錄。刪除前請確認A記錄已無業務依賴,否則可能導致原有服務中斷。
為何"網域名稱B CNAME到網域名稱A,網域名稱A再綁定OSS"的方式會訪問失敗?
因為OSS會嚴格校正HTTP要求標頭中的Host欄位,要求其必須與Bucket中實際綁定的網域名稱完全一致。當訪問網域名稱B時,Host頭為“網域名稱B”,與綁定網域名稱不匹配導致校正失敗。因此,必須將實際公網訪問的網域名稱直接綁定到Bucket,而不能通過網域名稱間的CNAME轉寄實現。
綁定自訂網域名後,之前的檔案URL是否可以繼續使用?
可以繼續使用。綁定自訂網域名不會影響OSS預設提供的網域名稱訪問,兩者可以並存。擷取之前的檔案URL方法,請參見使用預簽名URL下載或預覽檔案。
自訂網域名綁定OSS後只能用外網訪問網域名稱嗎?可以綁定內網網域名稱嗎?
自訂網域名綁定OSS後,只能用於公網(外網)訪問,不能用於內網訪問。
OSS的自訂網域名功能是通過在DNS服務位址配置CNAME記錄,將自有網域名稱指向OSS Bucket的外網訪問網域名稱(如example-bucket.oss-<region-id>.aliyuncs.com)來實現的。該機制面向公網使用者通過自有網域名稱訪問OSS資源。
而內網訪問必須使用阿里雲提供的內網Endpoint(如oss-<region-id>-internal.aliyuncs.com),且僅限於與OSS同地區的阿里雲資源(如ECS、Function Compute等)在VPC內通過私網調用。由於內網Endpoint不支援被外部DNS解析,也無法通過CNAME綁定到自訂網域名,因此無法將自訂網域名用於內網訪問。
使用自訂網域名,為什麼HTTP請求不了資源檔,會強制跳轉HTTPS?
這是因為在自訂網域名上開啟了強制HTTPS跳轉功能,導致所有HTTP請求被自動重新導向為HTTPS請求。
OSS本身不支援強制跳轉,但通過CDN綁定自訂網域名並配置了HTTPS認證後,可在CDN的HTTPS配置中開啟強制跳轉(HTTP → HTTPS),此時系統會返回301/302重新導向響應,使瀏覽器將HTTP請求轉為HTTPS。
如果希望允許HTTP訪問資源檔,請進入CDN控制台,找到對應網域名稱,將跳转类型改為默认(即同時支援HTTP和HTTPS)。具體操作,請參見配置協議重新導向。