共用方式為


設定服務匯流排命名空間的最低 TLS 版本

Azure 服務匯流排命名空間可讓用戶端使用 TLS 1.0 以上版本來傳送及接收資料。 若要強制執行更嚴格的安全性措施,您可以設定您的服務匯流排命名空間,要求用戶端以較新版本的 TLS 傳送和接收資料。 若服務匯流排命名空間要求最低版本的 TLS,則使用較舊版本提出的任何要求都會失敗。 如需關於此功能的概念資訊,請參閱對服務匯流排命名空間的要求強制執行最低必要版本的傳輸層安全性 (TLS)

您可以使用 Azure 入口網站或 Azure Resource Manager (ARM) 範本來設定最低 TLS 版本。

警告

自 2025 年 2 月 28 日起,Azure 服務匯流排 將不再支援 TLS 1.0 和 TLS 1.1。 所有 服務匯流排 部署的最低 TLS 版本將會是 1.2。

重要

在 2024 年 10 月 31 日,將會針對 AMQP 流量啟用 TLS 1.3。 已針對 HTTPS 流量啟用 TLS 1.3。 由於相依於舊版 Proton-J,Java 用戶端可能會有 TLS 1.3 的問題。 如需更多詳細資料,請閱讀 Java 用戶端變更以針對 Azure 服務匯流排和 Azure 事件中樞支援 TLS 1.3 (英文)

在 Azure 入口網站中指定最低 TLS 版本

您可以在 Azure 入口網站的 [進階] 索引標籤上建立服務匯流排命名空間時,指定最低 TLS 版本。

此螢幕快照顯示建立命名空間時要設定最低 TLS 版本的頁面。

您也可以在 [組態] 頁面上指定現有命名空間的最小 TLS 版本。

此螢幕快照顯示頁面以設定現有命名空間的最低 TLS 版本。

使用 Azure CLI

若要建立將最低 TLS 版本設定為 1.2 的命名空間,請使用 az servicebus namespace create 命令並將 --min-tls 設定為 1.2

az servicebus namespace create \
    --name mynamespace \
    --resource-group myresourcegroup \
    --min-tls 1.2

使用 Azure PowerShell

若要建立將最低 TLS 版本設定為 1.2 的命名空間,請使用 New-AzServiceBusNamespace 命令並將 -MinimumTlsVersion 設定為 1.2

New-AzServiceBusNamespace `
    -ResourceGroup myresourcegroup `
    -Name mynamespace `
    -MinimumTlsVersion 1.2

建立範本以設定最低 TLS 版本

若要設定服務匯流排命名空間的最低 TLS 版本,請設定 MinimumTlsVersion 版本屬性為 1.0、1.1 或 1.2。 當您使用 Azure Resource Manager 範本建立服務匯流排命名空間時,除非明確設定為另一個版本,否則 MinimumTlsVersion 屬性依預設會設定為 1.2。

注意

使用 2022-01-01-preview 之前 API 版本所建立的命名空間,將會有 1.0 作為 MinimumTlsVersion 的值。 此行為是先前的預設值,但仍有回溯相容性。

下列步驟描述如何在 Azure 入口網站中建立範本。

  1. 在 Azure 入口網站中,選擇 [建立資源]

  2. 在 [搜尋 Marketplace] 中,輸入自訂部署,然後按下 ENTER 鍵

  3. 選擇 [自訂部署 (使用自訂範本部署) (預覽版)],選擇 [建立],然後選擇 [在編輯器中建置您自己的範本]

  4. 在範本編輯器中,貼上下列 JSON 以建立新的命名空間,並將最低 TLS 版本設定為 TLS 1.2。 請記得以您自己的值取代角括弧中的預留位置。

    {
        "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "parameters": {},
        "variables": {
            "serviceBusNamespaceName": "[concat(uniqueString(subscription().subscriptionId), 'tls')]"
        },
        "resources": [
            {
            "name": "[variables('serviceBusNamespaceName')]",
            "type": "Microsoft.ServiceBus/namespaces",
            "apiVersion": "2022-01-01-preview",
            "location": "westeurope",
            "properties": {
                "minimumTlsVersion": "1.2"
            },
            "dependsOn": [],
            "tags": {}
            }
        ]
    }
    
  5. 儲存範本。

  6. 指定資源群組參數,然後選擇 [檢閱 + 建立] 按鈕來部署範本,並建立已設定 MinimumTlsVersion 屬性的命名空間。

注意

在您更新服務匯流排命名空間的最低 TLS 版本之後,最多可能需要 30 秒的時間,變更才會完全傳播。

設定最低 TLS 版本需要 api-version 2022-01-01-preview 或更新版本的 Azure 服務匯流排資源提供者。

檢查命名空間所需的最低 TLS 版本

若要檢查服務匯流排命名空間所需的最低 TLS 版本,您可以查詢 Azure Resource Manager API。 您將需要持有人權杖來查詢 API,您可以執行下列命令,使用 ARMClient 來擷取此權杖。

.\ARMClient.exe login
.\ARMClient.exe token <your-subscription-id>

擁有持有人權杖之後,您可以搭配使用下列指令碼和 REST Client 等項目來查詢 API。

@token = Bearer <Token received from ARMClient>
@subscription = <your-subscription-id>
@resourceGroup = <your-resource-group-name>
@namespaceName = <your-namespace-name>

###
GET https://management.azure.com/subscriptions/{{subscription}}/resourceGroups/{{resourceGroup}}/providers/Microsoft.ServiceBus/namespaces/{{namespaceName}}?api-version=2022-01-01-preview
content-type: application/json
Authorization: {{token}}

回應看起來應如下所示,其中 minimumTlsVersion 在屬性之下設定。

{
  "sku": {
    "name": "Premium",
    "tier": "Premium"
  },
  "id": "/subscriptions/<your-subscription-id>/resourceGroups/<your-resource-group-name>/providers/Microsoft.ServiceBus/namespaces/<your-namespace-name>",
  "name": "<your-namespace-name>",
  "type": "Microsoft.ServiceBus/Namespaces",
  "location": "West Europe",
  "tags": {},
  "properties": {
    "minimumTlsVersion": "1.2",
    "publicNetworkAccess": "Enabled",
    "disableLocalAuth": false,
    "zoneRedundant": false,
    "provisioningState": "Succeeded",
    "status": "Active"
  }
}

從用戶端測試最低 TLS 版本

若要測試服務匯流排命名空間的必要最低 TLS 版本是否禁止使用舊版進行呼叫,您可以將用戶端設定為使用較舊版本的 TLS。 如需設定用戶端使用特定 TLS 版本的詳細資訊,請參閱設定用戶端應用程式的傳輸層安全性 (TLS)

當用戶端使用不符合為命名空間所設定最低 TLS 版本的 TLS 版本來存取服務匯流排命名空間時,Azure 服務匯流排會傳回錯誤碼 401 錯誤 ( 未經授權) 以及訊息,指出所使用的 TLS 版本不允許對此服務匯流排命名空間提出要求。

注意

當您為服務匯流排命名空間設定最低 TLS 版本時,會在應用程式層強制執行最低版本。 當您直接針對服務匯流排命名空間端點執行時,嘗試在通訊協定層上判斷 TLS 支援的工具,可能還會傳回除了必要最低版本以外的 TLS 版本。

下一步

請參閱下列文件以取得詳細資訊。