分享方式:


設定 P2S VPN 閘道憑證驗證的伺服器設定 - PowerShell

本文可協助您使用 Azure PowerShell 設定點對站 (P2S) VPN,以安全地將執行 Windows、Linux 或 macOS 的個別用戶端連線到 Azure 虛擬網路 (VNet)。 本文包含基本的 PowerShell 設定步驟。 如需建立此類型 P2S VPN 的詳細資訊,請參閱 Azure 入口網站文章使用 Azure 入口網站設定點對站 VPN

當您想要從遠端位置 (例如當您從住家或會議進行遠距工作) 連線到您的 VNet 時,P2S VPN 連線很實用。 如果您只有少數用戶端必須連線至 VNet,您也可以使用 P2S,而不使用站對站 VPN。 P2S 連線不需要 VPN 裝置或公眾對應 IP 位址即可運作。 P2S 會建立透過 SSTP (安全通訊端通道通訊協定) 或 IKEv2 的 VPN 連線。

顯示如何從電腦連線到 Azure VNet 的點對站連線的圖表。

如需 P2S VPN 的詳細資訊,請參閱關於 P2S VPN (部分機器翻譯)。

P2S Azure 憑證驗證聯機會使用下列專案:

  • 路由型 VPN 閘道 (而非原則型)。 如需 VPN 類型的詳細資訊,請參閱 VPN 閘道設定
  • 已上傳至 Azure 之根憑證的公開金鑰 (.cer 檔案)。 一旦上傳憑證,憑證就會被視為受信任的憑證並且用於驗證。
  • 從根憑證產生的用戶端憑證。 此用戶端憑證須安裝在每部將連線至 VNet 的用戶端電腦上。 此憑證用於用戶端驗證。
  • VPN 用戶端設定檔。 VPN 用戶端使用 VPN 用戶端組態檔進行設定。 這些檔案包含用戶端連線至 VNet 所需的資訊。 您必須使用組態檔中的設定來設定每個進行連線的用戶端。

必要條件

驗證您有 Azure 訂用帳戶。 如果您還沒有 Azure 訂用帳戶,則可以啟用 MSDN 訂戶權益或註冊免費帳戶

Azure PowerShell

您可以使用 Azure Cloud Shell,也可以在本機執行 PowerShell。 如需詳細資訊,請參閱 如何安裝及設定 Azure PowerShell

  • 本文中的許多步驟都可以使用 Azure Cloud Shell。 不過,您無法使用 Cloud Shell 來產生憑證。 此外,若要上傳根憑證公開金鑰,您必須在本機使用 Azure PowerShell,或使用 Azure 入口網站。

  • 您可能會看到指出「此 Cmdlet 的輸出物件類型將會在未來版本中修改」的警告。 這是預期的行為,您可以放心地忽略這些警告。

登入

如果您使用 Azure Cloud Shell,系統會在開啟 Cloudshell 之後,自動將您導向以登入帳戶。 您不需要執行 Connect-AzAccount。 登入之後,您仍然可以視需要使用 Get-AzSubscriptionSelect-AzSubscription 來變更訂用帳戶。

如果您在本機執行 PowerShell,請以提高的權限開啟 PowerShell 主控台,並連線至您的 Azure 帳戶。 Connect-AzAccount Cmdlet 會提示您輸入認證。 驗證之後,它會下載您的帳戶設定,使其可供 Azure PowerShell 使用。 您可以使用 Get-AzSubscriptionSelect-AzSubscription -SubscriptionName "Name of subscription" 來變更訂用帳戶。

建立 VNet

  1. 使用 New-AzResourceGroup 來建立資源群組。

    New-AzResourceGroup -Name "TestRG1" -Location "EastUS"
    
  2. 使用 New-AzVirtualNetwork 建立虛擬網路。

    $vnet = New-AzVirtualNetwork `
    -ResourceGroupName "TestRG1" `
    -Location "EastUS" `
    -Name "VNet1" `
    -AddressPrefix 10.1.0.0/16
    
  3. 使用 New-AzVirtualNetworkSubnetConfig 建立子網路,並命名為:FrontEnd 和 GatewaySubnet (閘道子網路必須命名為 GatewaySubnet)。

    $subnetConfigFrontend = Add-AzVirtualNetworkSubnetConfig `
      -Name Frontend `
      -AddressPrefix 10.1.0.0/24 `
      -VirtualNetwork $vnet
    
    $subnetConfigGW = Add-AzVirtualNetworkSubnetConfig `
      -Name GatewaySubnet `
      -AddressPrefix 10.1.255.0/27 `
      -VirtualNetwork $vnet
    
  4. 使用 Set-AzVirtualNetwork 來將子網路設定寫入虛擬網路,這樣會在虛擬網路中建立子網路:

    $vnet | Set-AzVirtualNetwork
    

建立 VPN 閘道

要求公用 IP 位址

VPN 閘道必須具有公用 IP 位址。 您會先要求 IP 位址資源,然後在建立虛擬網路閘道時參考它。 建立 VPN 閘道時,系統會將 IP 位址靜態指派給此資源。 公用 IP 位址只會在刪除或重新建立閘道時變更。 它不會因為重新調整、重設或 VPN 閘道的其他內部維護/升級而變更。

  1. 使用 New-AzPublicIpAddress 要求 VPN 閘道的公用 IP 位址。

    $gwpip = New-AzPublicIpAddress -Name "GatewayIP" -ResourceGroupName "TestRG1" -Location "EastUS" -AllocationMethod Static -Sku Standard
    
  2. 使用 New-AzVirtualNetworkGatewayIpConfig 建立閘道 IP 位址設定。 當您建立 VPN 閘道時,會參考此設定。

    $vnet = Get-AzVirtualNetwork -Name "VNet1" -ResourceGroupName "TestRG1"
    $gwsubnet = Get-AzVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -VirtualNetwork $vnet
    $gwipconfig = New-AzVirtualNetworkGatewayIpConfig -Name gwipconfig1 -SubnetId $gwsubnet.Id -PublicIpAddressId $gwpip.Id
    

建立 VPN 閘道

在此步驟中,您會設定和建立 VNet 的虛擬網路閘道。 如需驗證和通道類型的完整資訊,請參閱本文之 Azure 入口網站版本中的指定通道和驗證類型 (部分機器翻譯)。

  • -GatewayType 必須是 Vpn,而 -VpnType 必須是 RouteBased
  • 使用 -VpnClientProtocol 可指定您想要啟用的通道類型。 通道選項為 OpenVPN、SSTPIKEv2。 您可以選擇啟用其中一個或任何支援的組合。 如果您想要啟用多個類型,請同時指定多個名稱並以逗號隔開。 OpenVPN 和 SSTP 無法一起啟用。 Android 和 Linux 上的 strongSwan 用戶端以及 iOS 和 macOS 上的原生 IKEv2 VPN 用戶端只會使用 IKEv2 通道來進行連線。 Windows 用戶端會先嘗試 IKEv2,如果無法連線,就會切換回使用 SSTP。 您可以使用 OpenVPN 用戶端連線至 OpenVPN 通道類型。
  • 虛擬網路閘道的「基本」SKU 不支援 IKEv2、OpenVPN 或 RADIUS 驗證。 如果您打算讓 Mac 用戶端連線到您的虛擬網路,請勿使用基本 SKU。
  • 視您選取的閘道 SKU 而定,VPN 閘道可能需要 45 分鐘的時間才能建置。
  1. 使用 New-AzVirtualNetworkGateway 建立具有「VPN」閘道類型的虛擬網路閘道。

    在此範例中,我們使用 VpnGw2 這個第 2 代 SKU。 如果您看到有關 GatewaySKU 值和在本機執行這些命令的 ValidateSet 錯誤,請確認您已安裝最新版的 PowerShell Cmdlet。 最新版本包含最新閘道 SKU 已經過驗證的新值。

    New-AzVirtualNetworkGateway -Name "VNet1GW" -ResourceGroupName "TestRG1" `
    -Location "EastUS" -IpConfigurations $gwipconfig -GatewayType Vpn `
    -VpnType RouteBased -EnableBgp $false -GatewaySku VpnGw2 -VpnGatewayGeneration "Generation2" -VpnClientProtocol IkeV2,OpenVPN
    
  2. 建立閘道之後,您可以使用下列範例來加以查看。

    Get-AzVirtualNetworkGateway -Name VNet1GW -ResourceGroup TestRG1
    

新增 VPN 用戶端位址集區

VPN 閘道完成建立之後,您可以新增 VPN 用戶端位址集區。 VPN 用戶端位址集區是 VPN 用戶端在連線時將從其接收 IP 位址的範圍。 使用不會重疊的私人 IP 位址範圍搭配您從其連線的內部部署位置,或搭配您要連線至的 VNet。

  1. 宣告下列變數:

    $VNetName  = "VNet1"
    $VPNClientAddressPool = "172.16.201.0/24"
    $RG = "TestRG1"
    $Location = "EastUS"
    $GWName = "VNet1GW"
    
  2. 新增 VPN 用戶端位址集區:

    $Gateway = Get-AzVirtualNetworkGateway -ResourceGroupName $RG -Name $GWName
    Set-AzVirtualNetworkGateway -VirtualNetworkGateway $Gateway -VpnClientAddressPool $VPNClientAddressPool
    

產生憑證

重要

您無法使用 Azure Cloud Shell 產生憑證。 您必須使用本節中所述的其中一種方法。 如果您想要使用 PowerShell,則必須在本機進行安裝。

Azure 使用憑證來驗證 P2S VPN 的 VPN 用戶端。 您會將根憑證的公開金鑰資訊上傳至 Azure。 公開金鑰就會被視為「受信任」。 用戶端憑證必須從信任的根憑證產生,然後安裝在 [憑證-目前使用者/個人憑證] 存放區中的每部用戶端電腦上。 在用戶端初始 VNet 連線時,此憑證用來驗證用戶端。

如果您使用自我簽署憑證,則必須使用特定參數來建立這些憑證。 您可以使用執行 Windows 10 或更新版本的 Windows 電腦的 PowerShell 指示,建立自我簽署憑證。 如果您未執行 Windows 10 或更新版本,請改用 MakeCert

產生自我簽署的根憑證和用戶端憑證時,請務必遵循指示中的步驟。 否則,您所產生的憑證將無法與 P2S 連線相容,而且會收到連線錯誤的訊息。

根憑證

  1. 取得根憑證的 .cer 檔案。 您可以使用透過企業解決方案產生的根憑證 (建議),或產生自我簽署憑證。 建立根憑證之後,將公開憑證資料 (不是私密金鑰) 匯出為 Base64 編碼的 X.509 .cer 檔案。 稍後將此檔案上傳至 Azure。

    • 企業憑證:如果您是使用企業解決方案,則可以使用現有的憑證鏈結。 取得您想要使用的根憑證 .cer 檔案。

    • 自我簽署根憑證:如果您未使用企業憑證解決方案,請建立自我簽署的根憑證。 否則,您所建立的憑證將無法與 P2S 連線相容,而且用戶端會在嘗試連線時收到連線錯誤訊息。 您可以使用 Azure PowerShell、MakeCert 或 OpenSSL。 下列文章中的步驟將說明如何產生相容的自我簽署根憑證:

  2. 建立根憑證之後,將公開憑證資料 (不是私密金鑰) 匯出為 Base64 編碼的 X.509 .cer 檔案。

用戶端憑證

  1. 每個使用點對站連線來連線至 VNet 的用戶端電腦都必須安裝用戶端憑證。 您會從根憑證產生用戶端憑證,並將其安裝在每部用戶端電腦上。 如果您沒有安裝有效的用戶端憑證,用戶端嘗試連線至 VNet 時所進行的驗證將會失敗。

    您可以為每個用戶端產生唯一的憑證,也可以對多個用戶端使用相同的憑證。 產生唯一用戶端憑證的優點是能夠撤銷單一憑證。 否則,如果多個用戶端使用相同的用戶端憑證進行驗證,而您要撤銷它時,就必須為每個使用該憑證的用戶端產生並安裝新的憑證。

    您可以使用下列方法來產生用戶端憑證︰

    • 企業憑證︰

      • 如果您使用企業憑證解決方案,請以一般的名稱值格式 name@yourdomain.com 產生用戶端憑證。 請使用此格式,而不是「網域名稱\使用者名稱」的格式。

      • 請確定用戶端憑證所根據的憑證範本,是將「用戶端驗證」列為使用者清單中第一個項目的使用者憑證範本。 按兩下憑證,然後檢視 [詳細資料] 索引標籤中的 [增強金鑰使用方法],即可檢查憑證。

    • 自我簽署根憑證:請遵循下列任一 P2S 憑證文章中的步驟,讓您建立的用戶端憑證可與 P2S 連線相容。

      當您從自我簽署根憑證產生用戶端憑證時,此憑證會自動安裝在您用來產生它的電腦上。 如果您想要在另一部用戶端電腦上安裝用戶端憑證,請將其匯出為 .pfx 檔案 (包含整個憑證鏈結)。 這麼做將會建立一個 .pfx 檔案,其中包含用戶端進行驗證所需的根憑證資訊。

      這些文章中的步驟都會產生相容的用戶端憑證,您可以接著進行匯出並散發。

      • Windows 10 或更新版本 PowerShell 指示:這些指示需要 Windows 10 或更新版本和 PowerShell,以產生憑證。 產生的憑證可以安裝在任何支援的 P2S 用戶端。

      • MakeCert 指示:如果您無法存取 Windows 10 或更新版本電腦來產生憑證,則可以使用 MakeCert。 雖然 MakeCert 已被取代,但您仍可用它來產生憑證。 您可以將產生的憑證安裝在任何支援的 P2S 用戶端。

      • Linux:請參閱 strongSwanOpenSSL 指示。

  2. 建立用戶端憑證之後,請將其匯出。 每部用戶端電腦都需要用戶端憑證才能連線和驗證。

上傳根憑證公開金鑰資訊

確認 VPN 閘道已完成建立。 完成之後,您可以將受信任根憑證的 .cer 檔案 (其中包含公開金鑰資訊) 上傳至 Azure。 一旦上傳 .cer 檔案,Azure 就可以使用該檔案來驗證已安裝從受信任根憑證所產生用戶端憑證的用戶端。 如有需要,您稍後可以上傳其他受信任的根憑證檔案 (最多總計 20 個檔案)。

注意

您無法使用 Azure Cloud Shell 上傳 .cer 檔案。 您可以在您的本機電腦上使用 PowerShell,或可使用 Azure 入口網站步驟

  1. 宣告您的憑證名稱的變數,以自己的值取代。

    $P2SRootCertName = "P2SRootCert.cer"
    
  2. 將檔案路徑以您的路徑取代,然後執行 Cmdlet。

    $filePathForCert = "C:\cert\P2SRootCert.cer"
    $cert = new-object System.Security.Cryptography.X509Certificates.X509Certificate2($filePathForCert)
    $CertBase64 = [system.convert]::ToBase64String($cert.RawData)
    
  3. 將公開金鑰資訊上傳至 Azure。 一旦上傳憑證資訊,Azure 會將它視為受信任的根憑證。 上傳時,請確定您是在電腦本機上執行 PowerShell,您也可以使用 Azure 入口網站步驟。 上傳完成時,您會看到顯示 PublicCertData 的 PowerShell 傳回值。 憑證上傳流程需要大約 10 分鐘的時間才能完成。

    Add-AzVpnClientRootCertificate -VpnClientRootCertificateName $P2SRootCertName -VirtualNetworkGatewayname "VNet1GW" -ResourceGroupName "TestRG1" -PublicCertData $CertBase64
    

安裝匯出的用戶端憑證

下列步驟可協助您在 Windows 用戶端上安裝。 如需其他用戶端和詳細資訊,請參閱安裝用戶端憑證

  1. 匯出用戶端憑證後,找出 .pfx 檔案並將其複製到用戶端電腦。
  2. 在用戶端電腦上,按兩下 .pfx 檔案以安裝。 將 [存放區位置] 保留為 [目前使用者],然後選取 [下一步]
  3. 在 [要匯入的檔案] 頁面上,請勿進行任何變更。 選取 [下一步]。
  4. 在 [私密金鑰保護] 頁面上,輸入憑證的密碼,或確認安全性主體是否正確,然後選取 [下一步]
  5. 在 [憑證存放區] 頁面上,保留預設的位置,然後選取 [下一步]
  6. 選取 [完成]。 在憑證安裝的 [安全性警告] 上,選取 [是]。 您可以安心對此安全性警告選取 [是],因為這是您產生的憑證。
  7. 現在已成功匯入憑證。

請確定用戶端憑證已隨著整個憑證鏈結匯出為 .pfx (這是預設值)。 否則,根憑證資訊不存在於用戶端電腦上,而且用戶端將無法正確驗證。

產生並下載 VPN 用戶端設定檔設定套件

每個 VPN 用戶端都是使用您產生和下載的 VPN 用戶端設定檔設定套件中的檔案設定。 組態套件包含您所建立 VPN 閘道專用的設定。 如果您變更閘道,例如變更通道型別、憑證或驗證型別,您必須產生另一個 VPN 用戶端設定檔組態套件,並在每個用戶端上安裝。 否則,您的 VPN 用戶端可能無法連線。

在產生 VPN 用戶端設定檔時,'-AuthenticationMethod' 的值是 'EapTls'。 使用下列命令來產生 VPN 用戶端組態檔:

$profile=New-AzVpnClientConfiguration -ResourceGroupName "TestRG" -Name "VNet1GW" -AuthenticationMethod "EapTls"

$profile.VPNProfileSASUrl

將 URL 複製到您的瀏覽器以下載 ZIP 檔案。

設定 VPN 用戶端並連線到 Azure

如需設定 VPN 用戶端並連線至 Azure 的步驟,請參閱下列文章:

驗證 通道類型 用戶端作業系統 VPN 用戶端
[MSSQLSERVER 的通訊協定內容]
IKEv2、SSTP Windows 原生 VPN 用戶端
IKEv2 macOS 原生 VPN 用戶端
IKEv2 Linux strongSwan
OpenVPN Windows Azure VPN 用戶端
OpenVPN 用戶端 2.x 版
OpenVPN 用戶端 3.x 版
OpenVPN macOS OpenVPN 用戶端
OpenVPN iOS OpenVPN 用戶端
OpenVPN Linux Azure VPN Client
OpenVPN 用戶端
Microsoft Entra ID
OpenVPN Windows Azure VPN 用戶端
OpenVPN macOS Azure VPN Client
OpenVPN Linux Azure VPN Client

驗證連線

這些指示適用於 Windows 用戶端。

  1. 若要驗證您的 VPN 連線為作用中狀態,請開啟提升權限的命令提示字元,並執行 ipconfig/all

  2. 檢視結果。 請注意,您接收到的 IP 位址是您在組態中指定的 P2S VPN 用戶端位址集區中的其中一個位址。 結果類似於此範例:

    PPP adapter VNet1:
       Connection-specific DNS Suffix .:
       Description.....................: VNet1
       Physical Address................:
       DHCP Enabled....................: No
       Autoconfiguration Enabled.......: Yes
       IPv4 Address....................: 172.16.201.13(Preferred)
       Subnet Mask.....................: 255.255.255.255
       Default Gateway.................:
       NetBIOS over Tcpip..............: Enabled
    

連線至虛擬機器

這些指示適用於 Windows 用戶端。

您可以建立 VM 的遠端桌面連線,以連線至已部署至虛擬網路的 VM。 一開始確認您可以連線至 VM 的最佳方法是使用其私人 IP 位址 (而不是電腦名稱) 進行連線。 這樣一來,您會測試以查看您是否可以連線,而不是否已正確設定名稱解析。

  1. 找出私人 IP 位址。 在 Azure 入口網站中或使用 PowerShell 查看 VM 的屬性,即可找到 VM 的私人 IP 位址。

    • Azure 入口網站:在 Azure 入口網站中尋找您的 VM。 檢視 VM 的屬性。 系統會列出私人 IP 位址。

    • PowerShell:使用範例來檢視資源群組中的 VM 和私人 IP 位址清單。 使用此範例前,您不需要加以修改。

      $VMs = Get-AzVM
      $Nics = Get-AzNetworkInterface | Where-Object VirtualMachine -ne $null
      
      foreach ($Nic in $Nics) {
      $VM = $VMs | Where-Object -Property Id -eq $Nic.VirtualMachine.Id
      $Prv = $Nic.IpConfigurations | Select-Object -ExpandProperty PrivateIpAddress
      $Alloc = $Nic.IpConfigurations | Select-Object -ExpandProperty PrivateIpAllocationMethod
      Write-Output "$($VM.Name): $Prv,$Alloc"
      }
      
  2. 確認您已連線至虛擬網路。

  3. 在工作列上的搜尋方塊中輸入 [RDP] 或 [遠端桌面連線] 以開啟 [遠端桌面連線]。 然後選取 [遠端桌面連線]。 您也可以在 PowerShell 中使用 mstsc 命令,開啟 [遠端桌面連線]

  4. 在 [遠端桌面連線] 中,輸入 VM 的私人 IP 位址。 您可以選取 [顯示選項],調整其他設定,然後進行連線。

如果您無法透過 VPN 連線與 VM 連線,請檢查下列幾點:

  • 確認您的 VPN 連線成功。
  • 確認您正連線至 VM 的私人 IP 位址。
  • 如果您可以使用私人 IP 位址 (而非電腦名稱) 來連線至 VM,請確認您已正確設定 DNS。 如需 VM 的名稱解析運作方式的詳細資訊,請參閱 VM 的名稱解析

如需 RDP 連線的詳細資訊,請參閱對 VM 的遠端桌面連線進行疑難排解

  • 確認 VPN 用戶端設定套件是在為 VNet 指定 DNS 伺服器 IP 位址之後產生的。 如果您更新了 DNS 伺服器 IP 位址,請產生並安裝新的 VPN 用戶端設定套件。

  • 使用 'ipconfig' 來檢查指派給所連線電腦上乙太網路介面卡的 IPv4 位址。 如果 IP 位址位在您要連線的 VNet 位址範圍內,或在您 VPNClientAddressPool 的位址範圍內,這稱為重疊位址空間。 當您的位址空間以這種方式重疊時,網路流量不會連線到 Azure,它會保留在本機網路上。

新增或移除根憑證

您可以從 Azure 新增和移除受信任的根憑證。 當您移除根憑證時,從根憑證產生憑證的用戶端無法進行驗證,而且無法進行連線。 若希望用戶端進行驗證和連線,您需要安裝從 Azure 信任 (已上傳至 Azure) 的根憑證產生的新用戶端憑證。 這些步驟需要 Azure PowerShell Cmdlet 安裝在您的本機電腦上 (不是 Azure Cloud Shell)。 您也可以使用 Azure 入口網站來新增根憑證。

若要加入:

您最多可將 20 個根憑證 .cer 檔案新增至 Azure。 下列步驟可協助您新增根憑證。

  1. 準備要上傳的 .cer 檔案:

    $filePathForCert = "C:\cert\P2SRootCert3.cer"
    $cert = new-object System.Security.Cryptography.X509Certificates.X509Certificate2($filePathForCert)
    $CertBase64_3 = [system.convert]::ToBase64String($cert.RawData)
    
  2. 上傳 檔案。 您一次只能上傳一個檔案。

    Add-AzVpnClientRootCertificate -VpnClientRootCertificateName $P2SRootCertName -VirtualNetworkGatewayname "VNet1GW" -ResourceGroupName "TestRG1" -PublicCertData $CertBase64_3
    
  3. 若要確認憑證檔案已上傳:

    Get-AzVpnClientRootCertificate -ResourceGroupName "TestRG1" `
    -VirtualNetworkGatewayName "VNet1GW"
    

若要移除:

  1. 宣告變數。 修改範例中的變數,以符合您想要移除的憑證。

    $GWName = "Name_of_virtual_network_gateway"
    $RG = "Name_of_resource_group"
    $P2SRootCertName2 = "ARMP2SRootCert2.cer"
    $MyP2SCertPubKeyBase64_2 = "MIIC/zCCAeugAwIBAgIQKazxzFjMkp9JRiX+tkTfSzAJBgUrDgMCHQUAMBgxFjAUBgNVBAMTDU15UDJTUm9vdENlcnQwHhcNMTUxMjE5MDI1MTIxWhcNMzkxMjMxMjM1OTU5WjAYMRYwFAYDVQQDEw1NeVAyU1Jvb3RDZXJ0MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyjIXoWy8xE/GF1OSIvUaA0bxBjZ1PJfcXkMWsHPzvhWc2esOKrVQtgFgDz4ggAnOUFEkFaszjiHdnXv3mjzE2SpmAVIZPf2/yPWqkoHwkmrp6BpOvNVOpKxaGPOuK8+dql1xcL0eCkt69g4lxy0FGRFkBcSIgVTViS9wjuuS7LPo5+OXgyFkAY3pSDiMzQCkRGNFgw5WGMHRDAiruDQF1ciLNojAQCsDdLnI3pDYsvRW73HZEhmOqRRnJQe6VekvBYKLvnKaxUTKhFIYwuymHBB96nMFdRUKCZIiWRIy8Hc8+sQEsAML2EItAjQv4+fqgYiFdSWqnQCPf/7IZbotgQIDAQABo00wSzBJBgNVHQEEQjBAgBAkuVrWvFsCJAdK5pb/eoCNoRowGDEWMBQGA1UEAxMNTXlQMlNSb290Q2VydIIQKazxzFjMkp9JRiX+tkTfSzAJBgUrDgMCHQUAA4IBAQA223veAZEIar9N12ubNH2+HwZASNzDVNqspkPKD97TXfKHlPlIcS43TaYkTz38eVrwI6E0yDk4jAuPaKnPuPYFRj9w540SvY6PdOUwDoEqpIcAVp+b4VYwxPL6oyEQ8wnOYuoAK1hhh20lCbo8h9mMy9ofU+RP6HJ7lTqupLfXdID/XevI8tW6Dm+C/wCeV3EmIlO9KUoblD/e24zlo3YzOtbyXwTIh34T0fO/zQvUuBqZMcIPfM1cDvqcqiEFLWvWKoAnxbzckye2uk1gHO52d8AVL3mGiX8wBJkjc/pMdxrEvvCzJkltBmqxTM6XjDJALuVh16qFlqgTWCIcb7ju"
    
  2. 移除憑證。

    Remove-AzVpnClientRootCertificate -VpnClientRootCertificateName $P2SRootCertName2 -VirtualNetworkGatewayName $GWName -ResourceGroupName $RG -PublicCertData $MyP2SCertPubKeyBase64_2
    
  3. 使用下列範例確認已成功移除憑證。

    Get-AzVpnClientRootCertificate -ResourceGroupName "TestRG1" `
    -VirtualNetworkGatewayName "VNet1GW"
    

撤銷或恢復用戶端憑證

您可以撤銷用戶端憑證。 憑證撤銷清單可讓您根據個別用戶端憑證選擇性地拒絕 P2S 連線能力。 這與移除受信任的根憑證不同。 若您從 Azure 移除受信任的根憑證 .cer,就會撤銷所有由撤銷的根憑證所產生/簽署的用戶端憑證之存取權。 撤銷用戶端憑證,而不是根憑證,可以繼續使用從根憑證產生的憑證進行驗證。

常見的做法是使用根憑證管理小組或組織層級的存取權,然後使用撤銷的用戶端憑證針對個別使用者進行細部的存取控制。

撤銷:

  1. 擷取用戶端憑證指紋。 如需詳細資訊,請參閱做法:擷取憑證的指紋

  2. 將資訊複製到文字編輯器,並移除所有的空格,使其為連續字串。 這個字串在下一個步驟中會宣告為變數。

  3. 宣告變數。 請確定宣告您在上一個步驟中擷取的指紋。

    $RevokedClientCert1 = "NameofCertificate"
    $RevokedThumbprint1 = "‎51ab1edd8da4cfed77e20061c5eb6d2ef2f778c7"
    $GWName = "Name_of_virtual_network_gateway"
    $RG = "Name_of_resource_group"
    
  4. 將指紋新增到撤銷的憑證清單。 指紋新增時,您會看到「成功」。

    Add-AzVpnClientRevokedCertificate -VpnClientRevokedCertificateName $RevokedClientCert1 `
    -VirtualNetworkGatewayName $GWName -ResourceGroupName $RG `
    -Thumbprint $RevokedThumbprint1
    
  5. 確認指紋已新增到憑證撤銷清單。

    Get-AzVpnClientRevokedCertificate -VirtualNetworkGatewayName $GWName -ResourceGroupName $RG
    
  6. 新增指紋之後,憑證無法再用於連線接。 嘗試使用此憑證進行連線的用戶端會收到一則訊息,指出憑證已不再有效。

若要恢復:

您可以從撤銷的用戶端憑證清單中移除指紋來恢復用戶端憑證。

  1. 宣告變數。 請確定針對您要恢復的憑證宣告正確指紋。

    $RevokedClientCert1 = "NameofCertificate"
    $RevokedThumbprint1 = "‎51ab1edd8da4cfed77e20061c5eb6d2ef2f778c7"
    $GWName = "Name_of_virtual_network_gateway"
    $RG = "Name_of_resource_group"
    
  2. 從憑證撤銷清單中移除憑證指紋。

    Remove-AzVpnClientRevokedCertificate -VpnClientRevokedCertificateName $RevokedClientCert1 `
    -VirtualNetworkGatewayName $GWName -ResourceGroupName $RG -Thumbprint $RevokedThumbprint1
    
  3. 檢查指紋是否已從撤銷的清單中移除。

    Get-AzVpnClientRevokedCertificate -VirtualNetworkGatewayName $GWName -ResourceGroupName $RG
    

P2S 常見問題

如需其他 P2S 資訊,請參閱 VPN 閘道 P2S 常見問題 (部分機器翻譯)

下一步

一旦完成您的連接,就可以將虛擬機器加入您的虛擬網路。 如需詳細資訊,請參閱虛擬機器。 若要了解網路與虛擬機器的詳細資訊,請參閱 Azure 與 Linux VM 網路概觀

如需 P2S 疑難排解詳細資訊,請參閱疑難排解:Azure P2S 連線問題 (部分機器翻譯)。