全部產品
Search
文件中心

Object Storage Service:設定TLS版本確保通訊安全

更新時間:Nov 08, 2025

用戶端應用程式與OSS之間的通訊使用傳輸層安全TLS(Transport Layer Security)進行加密。 TLS是一種標準的加密協議,可確保通過互連網進行通訊的用戶端與服務端之間的隱私和資料完整性。您可以通過OSS服務端設定TLS版本以及密碼編譯演算法套件。設定完成後,用戶端僅支援使用指定的TLS版本和密碼編譯演算法套件與OSS進行資料的發送和接收,以滿足通訊鏈路的安全性要求。

前提條件

RAM使用者必須擁有以下許可權:oss:PutTLSVersionoss:GetTLSVersion。具體操作,請參見為RAM使用者授予自訂的權限原則

TLS版本說明

目前TLS支援四個版本,分別為1.0、1.1、1.2和1.3。各版本使用情境以及支援主流瀏覽器說明如下:

協議

說明

適用情境

支援的主流瀏覽器

TLS 1.0

使用的主要密碼編譯演算法包括RSA、DES、3DES等。TLS 1.0存在一些安全性漏洞,容易受到各種攻擊(例如BEAST和POODLE等)。對當今網路連接的安全已失去應有的保護效力,不符合PCI DSS合規判定標準。

由於存在一些安全性漏洞,TLS 1.0不再被廣泛推薦使用。在絕大多數情況下,建議升級到更安全的TLS版本。

  • IE6+

  • Chrome 1+

  • Firefox 2+

TLS 1.1

主要改進了對安全性的支援,去除了部分已知的漏洞,增加了對更強大密碼編譯演算法的支援,例如AES、RSA、SHA-256等。

需要相對較高安全層級的情境,但不需求最新的TLS特性的環境。

  • IE11+

  • Chrome 22+

  • Firefox 24+

  • Safri 7+

TLS 1.2

進一步加強了對安全性的支援,並增加了一些新特性例如伺服器名稱指示(SNI)、擴充握手協議等。支援的密碼編譯演算法包括AES-GCM、AES-CBC、ECDHE等。

大多數常見的安全通訊情境,包括Web應用程式、電子商務網站、電子郵件、Virtual Private Cloud(VPN)等。

  • IE11+

  • Chrome 30+

  • Firefox 27+

  • Safri 7+

TLS 1.3

在安全性、效能和隱私方面進行了重大改進。刪除了一些不安全的密碼編譯演算法,增加了更強大的金鑰交換演算法和密碼編譯演算法,減少了握手過程的延遲,還提供了更好的前向保密和身分識別驗證機制。

對安全性要求較高、希望獲得更好效能和隱私保護的情境,如金融機構、大型互連網公司、政府機構等。

  • Chrome 70+

  • Firefox 63+

注意事項

  • 不建議將Bucket設定為僅允許TLS 1.0或者TLS 1.1這兩個低版本協議,建議至少包含TLS 1.2主流版本。

  • 未開啟TLS版本設定時,預設支援TLS 1.0、1.1、1.2 三個版本,不支援TLS 1.3版本。開啟TLS版本設定後,支援選擇設定TLS 1.0、1.1、1.2以及1.3 四個版本。通過OSS控制台首次設定TLS版本時,預設勾選TLS 1.2 版本,原因是該版本為當前主流版本。如未選擇TLS 1.2版本,會造成一些主流用戶端無法正常訪問OSS。

  • 降低TLS版本(例如從TLS 1.2降至TLS 1.1或者TLS 1.0)或者關閉TLS版本設定可能會帶來安全性和合規性問題,建議您謹慎操作。

  • 禁用某個TLS版本前,需要確認當前無用戶端僅支援使用將被禁用的版本。

操作方式

使用OSS控制台

  1. 登入OSS管理主控台

  2. 在左側導覽列,單擊Bucket 列表,然後單擊目標Bucket名稱。

  3. 在左側導覽列,選擇數據安全 > TLS版本設定

  4. TLS版本設定頁面,設定以下配置項。

    配置項

    說明

    TLS版本設定

    開啟TLS版本設定。

    TLS 密碼編譯演算法套件

    密碼編譯演算法套件定義了具體的密碼編譯演算法組合,用於實現資料加密、身分識別驗證和完整性保護。每個密碼編譯演算法套件通常包括金鑰交換演算法(例如RSA、ECDHE等)、認證演算法(例如ECDSA)、對稱式加密演算法(例如AES)以及訊息認證碼演算法(例如SHA256)。

    OSS支援以下三種密碼編譯演算法套件類型:

    • 全部密碼編譯演算法套件(預設):安全性較低,相容性較高。

    • 強密碼編譯演算法套件:安全性較高,相容性較低。

      強密碼編譯演算法套件列表

      • ECDHE-ECDSA-CHACHA20-POLY1305

      • ECDHE-RSA-CHACHA20-POLY1305

      • ECDHE-ECDSA-AES128-GCM-SHA256

      • ECDHE-RSA-AES128-GCM-SHA256

      • ECDHE-ECDSA-AES128-CCM8

      • ECDHE-ECDSA-AES128-CCM

      • ECDHE-ECDSA-AES256-GCM-SHA384

      • ECDHE-RSA-AES256-GCM-SHA384

      • ECDHE-ECDSA-AES256-CCM8

      • ECDHE-ECDSA-AES256-CCM

      • ECDHE-ECDSA-ARIA256-GCM-SHA384

      • ECDHE-ARIA256-GCM-SHA384

      • ECDHE-ECDSA-ARIA128-GCM-SHA256

      • ECDHE-ARIA128-GCM-SHA256

      • TLS_AES_256_GCM_SHA384

      • TLS_AES_128_GCM_SHA256

      • TLS_CHACHA20_POLY1305_SHA256

    • 自訂密碼編譯演算法套件:高度定製化,可以根據具體的安全性原則選擇最合適的演算法組合。如選擇更強的密碼編譯演算法(例如AES-256而不是AES-128)、更安全的金鑰交換機制(例如ECDHE而不是RSA)等。僅當TLS版本為1.2或者1.3時,支援設定自訂密碼編譯演算法套件。

      適用於TLS 1.2版本的自訂密碼編譯演算法套件

      • ECDHE-ECDSA-CHACHA20-POLY1305

      • ECDHE-RSA-CHACHA20-POLY1305

      • ECDHE-ECDSA-AES128-GCM-SHA256

      • ECDHE-RSA-AES128-GCM-SHA256

      • ECDHE-ECDSA-AES128-CCM8

      • ECDHE-ECDSA-AES128-CCM

      • ECDHE-ECDSA-AES128-SHA256

      • ECDHE-RSA-AES128-SHA256

      • ECDHE-ECDSA-AES256-GCM-SHA384

      • ECDHE-RSA-AES256-GCM-SHA384

      • ECDHE-ECDSA-AES256-CCM8

      • ECDHE-ECDSA-AES256-CCM

      • ECDHE-ECDSA-AES256-SHA384

      • ECDHE-RSA-AES256-SHA384

      • ECDHE-ECDSA-ARIA256-GCM-SHA384

      • ECDHE-ARIA256-GCM-SHA384

      • ECDHE-ECDSA-ARIA128-GCM-SHA256

      • ECDHE-ARIA128-GCM-SHA256

      • ECDHE-ECDSA-CAMELLIA256-SHA384

      • ECDHE-RSA-CAMELLIA256-SHA384

      • ECDHE-ECDSA-CAMELLIA128-SHA256

      • ECDHE-RSA-CAMELLIA128-SHA256

      • AES256-GCM-SHA384

      • AES256-CCM8

      • AES256-CCM

      • ARIA256-GCM-SHA384

      • AES128-GCM-SHA256

      • AES128-CCM8

      • AES128-CCM

      • ARIA128-GCM-SHA256

      適用於TLS 1.3版本的自訂密碼編譯演算法套件

      • TLS_AES_256_GCM_SHA384

      • TLS_AES_128_GCM_SHA256

      • TLS_CHACHA20_POLY1305_SHA256

    允許的 TLS 版本

    設定TLS版本。關於TLS版本的適用情境及說明,請參見TLS版本說明

  5. 單擊儲存,然後在彈出的對話方塊,單擊確定

    以上配置將在30分鐘內生效。

使用命令列工具ossutil

您可以使用命令列工具ossutil來開啟或關閉TLS版本設定,ossutil的安裝請參見安裝ossutil

  • 以下樣本展示了如何為儲存空間examplebucket開啟TLS版本設定,TLS版本設定為TLSv1.2、TLSv1.3。

    ossutil api put-bucket-https-config --bucket examplebucket --https-configuration "{\"TLS\":{\"Enable\":\"true\",\"TLSVersion\":[\"TLSv1.2\",\"TLSv1.3\"]}}"

    關於該命令的更多資訊,請參見put-bucket-https-config

  • 以下樣本展示了如何擷取儲存空間examplebucket的TLS版本設定。

    ossutil api get-bucket-https-config --bucket examplebucket

    關於該命令的更多資訊,請參見get-bucket-https-config

相關API

以上操作方式底層基於API實現,如果您的程式自訂要求較高,您可以直接發起REST API請求。直接發起REST API請求需要手動編寫代碼計算簽名。更多資訊,請參見PutBucketHttpsConfigGetBucketHttpsConfig

常見問題

如何判斷當前使用的TLS版本?

在用戶端未指定TLS版本的情況下,您可以通過以下命令判斷當前用戶端與服務端之間協商使用的TLS版本。

openssl s_client -connect <Bucket>.<Endpoint>:443 -servername <Bucket>.<Endpoint>

程式碼範例中涉及的參數說明如下:

參數

說明

Bucket

填寫OSS Bucket名稱。

Endpoint

支援外網Endpoint、內網Endpoint以及自訂網域名。

您可以從返回結果中擷取TLS版本。

1.jpg

如何判斷TLS版本是否設定成功?

當您的Bucket配置為僅允許TLS 1.2版本訪問時,如果TLS版本設定成功,會出現以下三種情況:

  • 用戶端指定TLS 1.2版本時可以成功訪問服務端

    openssl s_client -connect <Bucket>.<Endpoint>:443 -servername <Bucket>.<Endpoint> -tls1_2

    程式碼範例中涉及的參數說明如下:

    參數

    說明

    Bucket

    填寫OSS儲存空間名稱。

    Endpoint

    支援外網Endpoint、內網Endpoint以及自訂網域名。

    返回結果如下:

    3.jpg

  • 用戶端未指定TLS版本(但用戶端本身支援TLS 1.2版本)時可以成功訪問服務端

    openssl s_client -connect <Bucket>.<Endpoint>:443 -servername <Bucket>.<Endpoint>

    返回結果如下:

    3.jpg

  • 用戶端指定非TLS 1.2版本(例如TLS 1.1)時無法正常訪問服務端

    openssl s_client -connect <Bucket>.<Endpoint>:443 -servername <Bucket>.<Endpoint> -tls1_1

    返回結果如下:

    2.jpg