使用 Azure 憑證驗證設定 VNet 的點對站 VPN 連線:PowerShell

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

從電腦連線至 Azure VNet - 點對站連線圖表

如需點對站 VPN 的詳細資訊,請參閱關於點對站 VPN。 若要使用 Azure 入口網站建立此設定,請參閱使用 Azure 入口網站設定點對站 VPN

點對站的原生 Azure 憑證驗證連線使用下列項目,您會在此練習中設定:

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

先決條件

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

Azure PowerShell

重要

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

本文使用 PowerShell Cmdlet。 若要執行 Cmdlet,您可以使用 Azure Cloud Shell。 Cloud Shell 是免費的互動式殼層,可讓您用來執行本文中的步驟。 它具有預先安裝和設定的共用 Azure 工具,可與您的帳戶搭配使用。

若要開啟 Cloud Shell,只要選取程式碼區塊右上角的 [試試看] 即可。 您也可以移至 https://shell.azure.com/powershell,在另一個瀏覽器索引標籤開啟 Cloud Shell。 選取 [複製] 來複製程式碼區塊,將其貼到 Cloud Shell,然後選取 Enter 鍵來執行。

您也可以在本機電腦上安裝和執行 Azure PowerShell Cmdlet。 PowerShell Cmdlet 經常會更新。 如果您未安裝最新版本,指示中指定的值可能會失敗。 若要尋找機器上安裝的 Azure PowerShell 版本,請使用 Get-Module -ListAvailable Az Cmdlet。 若要安裝或更新,請參閱安裝 Azure PowerShell 模組

登入

如果您在本機執行 PowerShell,請以提高的權限開啟 PowerShell 主控台並連線至您的 Azure 帳戶。 Connect-AzAccount Cmdlet 會提示您輸入認證。 您驗證後就會下載您的帳戶設定,以供 Azure PowerShell 使用。

如果您使用 Azure Cloud Shell 而不是在本機執行 PowerShell,您會發現無須執行 Connect-AzAccount。 當您選取 [試試看] 之後,Azure Cloud Shell 會自動連線至您的 Azure 帳戶。

  1. 如果您在本機執行 PowerShell,請登入。

    Connect-AzAccount
    
  2. 如果您有多個訂用帳戶,請取得 Azure 訂用帳戶的清單。

    Get-AzSubscription
    
  3. 指定您要使用的訂用帳戶。

    Select-AzSubscription -SubscriptionName "Name of subscription"
    

宣告變數

我們會使用這篇文章中的變數,讓您可以輕鬆地變更值以套用至您自己的環境,而不需要自行變更範例。 宣告您想要使用的變數。 您可使用以下範例,在需要時將該值替換為您自己的值。 如果您在練習的任何時刻關閉了 PowerShell/Cloud Shell 工作階段,請再次複製值並貼上,以重新宣告變數。

$VNetName  = "VNet1"
$FESubName = "FrontEnd"
$GWSubName = "GatewaySubnet"
$VNetPrefix = "10.1.0.0/16"
$FESubPrefix = "10.1.0.0/24"
$GWSubPrefix = "10.1.255.0/27"
$VPNClientAddressPool = "172.16.201.0/24"
$RG = "TestRG1"
$Location = "EastUS"
$GWName = "VNet1GW"
$GWIPName = "VNet1GWpip"
$GWIPconfName = "gwipconf"
$DNS = "10.2.1.4"

建立 VNet

  1. 建立資源群組。

    New-AzResourceGroup -Name $RG -Location $Location
    
  2. 為虛擬網路建立子網路組態,將其命名為 FrontEndGatewaySubnet。 這些前置詞必須是您宣告的 VNet 位址空間的一部分。

    $fesub = New-AzVirtualNetworkSubnetConfig -Name $FESubName -AddressPrefix $FESubPrefix
    $gwsub = New-AzVirtualNetworkSubnetConfig -Name $GWSubName -AddressPrefix $GWSubPrefix
    
  3. 建立虛擬網路

    在此範例中,-DnsServer 伺服器是選擇性的。 指定一個值並不會建立新的 DNS 伺服器。 您指定的 DNS 伺服器 IP 位址應該是可以解析您從 VNet 連線之資源名稱的 DNS 伺服器。 此範例使用私人 IP 位址,但這可能不是您 DNS 伺服器的 IP 位址。 請務必使用您自己的值。 您指定的值會供部署至 VNet 的資源使用,而非供 P2S 連線或 VPN 用戶端使用。

        New-AzVirtualNetwork `
       -ResourceGroupName $RG `
       -Location $Location `
       -Name $VNetName `
       -AddressPrefix $VNetPrefix `
       -Subnet $fesub, $gwsub `
       -DnsServer $DNS
    
  4. 指定您所建立的虛擬網路的變數。

    $vnet = Get-AzVirtualNetwork -Name $VNetName -ResourceGroupName $RG
    $subnet = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet
    
  5. VPN 閘道必須具有公用 IP 位址。 您會先要求 IP 位址資源,然後在建立虛擬網路閘道時參考它。 建立 VPN 閘道時,系統會將 IP 位址動態指派給此資源。 VPN 閘道目前僅支援動態公用 IP 位址配置。 您無法要求靜態公用 IP 位址指派。 不過,這不表示之後的 IP 位址變更已指派至您的 VPN 閘道。 公用 IP 位址只會在刪除或重新建立閘道時變更。 它不會因為重新調整、重設或 VPN 閘道的其他內部維護/升級而變更。

    要求動態指派的公用 IP 位址。

    $pip = New-AzPublicIpAddress -Name $GWIPName -ResourceGroupName $RG -Location $Location -AllocationMethod Dynamic
    $ipconf = New-AzVirtualNetworkGatewayIpConfig -Name $GWIPconfName -Subnet $subnet -PublicIpAddress $pip
    

建立 VPN 閘道

在此步驟中,您會設定和建立 VNet 的虛擬網路閘道。

  • -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. 設定和建立 VNet 的虛擬網路閘道。 建立閘道大約需要 45 分鐘。

    New-AzVirtualNetworkGateway -Name $GWName -ResourceGroupName $RG `
    -Location $Location -IpConfigurations $ipconf -GatewayType Vpn `
    -VpnType RouteBased -EnableBgp $false -GatewaySku VpnGw1 -VpnClientProtocol "IKEv2"
    
  2. 建立閘道之後,您可以使用下列範例來加以查看。 如果您關閉了 PowerShell 或在建立閘道時超時,則可以再次宣告變數

    Get-AzVirtualNetworkGateway -Name $GWName -ResourceGroup $RG
    

新增 VPN 用戶端位址集區

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

在此範例中,VPN 用戶端位址集區會宣告為先前步驟中的變數

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

產生憑證

重要

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

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

如果您使用自我簽署憑證,則必須使用特定參數來建立這些憑證。 您可以依循 PowerShell 和 Windows 10 或更新版本的指示建立自我簽署憑證;或者,如果您沒有 Windows 10 或更新版本,可以使用 MakeCert。 產生自我簽署的根憑證和用戶端憑證時,請務必遵循指示中的步驟。 否則,您所產生的憑證將無法與 P2S 連線相容,而且會收到連線錯誤的訊息。

根憑證

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

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

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

      • Windows 10 或更新版本 PowerShell 指示:這些指示需要 Windows 10 或更新版本和 PowerShell,以產生憑證。 從根憑證產生的用戶端憑證可以安裝於任何支援的 P2S 用戶端上。
      • MakeCert 指示:如果您無法存取 Windows 10 或更新版本電腦來產生憑證,則可使用 MakeCert。 雖然 MakeCert 已被取代,但您仍可用它來產生憑證。 從根憑證產生的用戶端憑證可以安裝於任何支援的 P2S 用戶端上。
      • Linux 指示
  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 指示

  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 入口網站步驟。 您無法使用 Azure Cloud Shell 上傳。

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

安裝匯出的用戶端憑證

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

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

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

設定 VPN 用戶端

若要使用 P2S 連線至虛擬網路閘道,每部電腦都要使用原生安裝、屬於作業系統一部分的 VPN 用戶端。 例如,當您移至 Windows 電腦上的 VPN 設定時,您可以新增 VPN 連線,而不需要安裝另一個 VPN 用戶端。 您可以使用用戶端設定套件,設定每個 VPN 用戶端。 用戶端設定套件包含您所建立 VPN 閘道專用的設定。

您可以使用下列快速範例來產生和安裝用戶端設定套件。 如需有關如何產生和安裝 VPN 用戶端設定檔的套件內容和其他指示的詳細資訊,請參閱建立和安裝 VPN 用戶端設定檔

如果您需要再次宣告變數,可以在這裡找到。

產生組態檔

$profile=New-AzVpnClientConfiguration -ResourceGroupName $RG -Name $GWName -AuthenticationMethod "EapTls"

$profile.VPNProfileSASUrl

安裝用戶端組態套件

您可以在每個 Windows 用戶端電腦上使用相同的 VPN 用戶端組態套件,但前提是版本必須符合用戶端的架構。 如需用戶端支援的作業系統清單,請參閱 VPN 閘道常見問題集的<點對站>一節。

注意

您必須擁有欲連線之 Windows 用戶端電腦上的系統管理員權限。

安裝組態檔

  1. 選取 Windows 電腦架構所對應的 VPN 用戶端組態檔。 若是 64 位元的處理器架構,請選擇 'VpnClientSetupAmd64' 安裝程式套件。 若是 32 位元的處理器架構,請選擇 'VpnClientSetupX86' 安裝程式套件。
  2. 對套件按兩下來加以安裝。 如果您看到 SmartScreen 快顯視窗,請按一下 [更多資訊],然後按一下 [仍要執行]。

確認並連線

  1. 確認您已在用戶端電腦上安裝用戶端憑證。 使用原生 Azure 憑證驗證類型時,必須提供用戶端憑證才能通過驗證。 若要檢視用戶端憑證,請開啟 [管理使用者憑證]。 用戶端憑證會安裝在 Current User\Personal\Certificates
  2. 若要連線,請瀏覽至 [網路設定],然後按一下 [VPN]。 VPN 連線會顯示其連線的虛擬網路名稱。

10. 連線到 Azure

Windows VPN 用戶端

注意

您必須在您所連線的 Windows 用戶端電腦上具有系統管理員權限。

  1. 若要連接至您的 VNet,在用戶端電腦上瀏覽到 VPN 設定,然後找到您所建立的 VPN 連線。 其名稱會與您的虛擬網路名稱相同。 選取 [連線]。 可能會出現與使用憑證有關的快顯訊息。 按一下 [繼續] 以使用較高的權限。

  2. 在 [連線] 狀態頁面上,選取 [連線] 以便開始連線。 如果出現 [選取憑證] 畫面,請確認顯示的用戶端憑證是要用來連接的憑證。 如果沒有,請使用下拉箭頭來選取正確的憑證,然後選取 [確定]。

    從 Windows 電腦連線

  3. 已建立您的連線。

    從電腦連線至 Azure VNet - 點對站連線圖表

如果您連線時遇到問題,請檢查下列項目︰

  • 如果您已使用憑證匯出精靈來匯出用戶端憑證,請確定您已將其匯出為 .pfx 檔案,並且已選取 [如果可能的話,包含憑證路徑中的所有憑證]。 當您使用此值匯出它時,根憑證資訊也會一併匯出。 當您在用戶端電腦上安裝憑證後,.pfx 檔案中的根憑證也會一併安裝。 若要確認是否已安裝根憑證,可開啟 [管理使用者憑證],然後選取 Trusted Root Certification Authorities\Certificates。 確認其中已列出根憑證,如此才能讓驗證正常運作。

  • 如果您使用由企業 CA 解決方案簽發的憑證,但您無法進行驗證,請檢查用戶端憑證上的驗證順序。 按兩下用戶端憑證,依序選取 [詳細資料] 索引標籤和 [增強金鑰使用方法],即可檢查驗證清單順序。 請確定清單中的第一個項目是「用戶端驗證」。 如果不是,請根據以「用戶端驗證」作為清單中第一個項目的「使用者」範本來簽發用戶端憑證。

  • 如需其他 P2S 疑難排解詳細資訊,請參閱針對 P2S 連線進行疑難排解

Mac VPN 用戶端

從 [網路] 對話方塊,找出您要使用的用戶端設定檔,然後按一下 [連線]。 如需詳細指示,請參閱安裝 - Mac (macOS)。 如果您在連線時發生問題,請確認虛擬網路閘道不是使用「基本」SKU。 針對 Mac 用戶端不支援「基本」SKU。

Mac 連線

驗證連線

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

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

  2. 檢視結果。 請注意,您接收到的 IP 位址是您在組態中指定的點對站 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 的遠端桌面連線,以連線至已部署至 VNet 的 VM。 一開始確認您可以連線至 VM 的最佳方法是使用其私人 IP 位址 (而不是電腦名稱) 進行連線。 這樣一來,您會測試以查看您是否可以連線,而不是否已正確設定名稱解析。

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

    • Azure 入口網站 - 在 Azure 入口網站中尋找您的虛擬機器。 檢視 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. 確認您已連線至 VNet。

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

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

針對連線進行疑難排解

如果您無法透過 VPN 連線與虛擬機器連線,請檢查下列各項:

  • 確認您的 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"
    

撤銷或恢復用戶端憑證

您可以撤銷用戶端憑證。 憑證撤銷清單可讓您選擇性地拒絕以個別用戶端憑證為基礎的點對站連線。 這與移除受信任的根憑證不同。 若您從 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
    

點對站常見問題集

如需其他點對站資訊,請參閱 VPN 閘道點對站常見問題

下一步

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

如需 P2S 疑難排解詳細資訊,請參閱疑難排解:Azure 點對站連線問題