全部產品
Search
文件中心

:設定TLS版本

更新時間:Jun 19, 2024

用戶端應用程式與OSS之間的通訊使用傳輸層安全TLS(Transport Layer Security)進行加密。 TLS是一種標準的加密協議,可確保通過互連網進行通訊的用戶端與服務端之間的隱私和資料完整性。您可以通過OSS服務端設定TLS版本。設定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主流版本。

  • OSS將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版本的適用情境及說明,請參見TLS版本說明

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

    為Bucket配置指定的TLS版本後,該配置將在30分鐘內生效。

  6. (可選)如果您需要修改TLS版本設定,您可以單擊允許的TLS版本右側的修改,然後按照頁面

    指引完成修改操作。

  7. (可選)如果您不再需要使用TLS版本設定,您可以選擇關閉TLS版本設定開關,然後按照頁面

    指引完成關閉操作。

使用REST API

如果您的程式自訂要求較高,您可以直接發起REST API請求。直接發起REST API請求需要手動編寫代碼計算簽名。詳情請參見PutBucketHttpsConfigGetBucketHttpsConfig

常見問題

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

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

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

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

參數

說明

Bucket

填寫OSS儲存空間名稱。

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