Настройка параметров сервера для подключений VPN-шлюз P2S — проверка подлинности на основе сертификата — Azure PowerShell

Эта статья поможет вам установить безопасное подключение отдельных клиентов под управлением Windows, macOS или Linux к виртуальной сети Azure. VPN-подключения типа "точка-сеть" (P2S) эффективны для подключения к виртуальной сети из удаленного расположения, например, если вы дома или на конференции. Вы также можете использовать подключение "точка — сеть" вместо VPN-подключения "сеть — сеть" при наличии небольшого количества клиентов, которым требуется подключение к виртуальной сети. Для подключения типа "точка-сеть" не требуется VPN-устройство или общедоступный IP-адрес. Подключение "точка — сеть" — это VPN-подключение по протоколу SSTP (Secure Socket Tunneling Protocol) или IKEv2.

Схема соединения компьютера с виртуальной сетью Azure с помощью подключения типа

Дополнительные сведения см. в статье о VPN-подключении типа "точка — сеть". Чтобы создать эту конфигурацию на портале Azure, ознакомьтесь со статьей О настройке VPN-подключения типа "точка-сеть" с помощью портала Azure.

Для подключений проверки подлинности на основе сертификата P2S Azure используются следующие элементы, которые вы настроите в этом упражнении:

  • VPN-шлюз с маршрутизацией на основе маршрутов.
  • Открытый ключ (CER-файл) для корневого сертификата, импортированный в Azure. После отправки сертификат считается доверенным и используется для проверки подлинности.
  • Сертификат клиента, созданный на основе корневого сертификата. Сертификат клиента, установленный на каждом клиентском компьютере, который будет подключен к виртуальной сети. Этот сертификат используется для проверки подлинности клиента.
  • Файлы конфигурации VPN-клиента. VPN-клиент настраивается с помощью файлов конфигурации VPN-клиента. Эти файлы содержат информацию, необходимую для подключения клиента к виртуальной сети. Перед подключением каждый клиент нужно настроить, используя параметры в файлах конфигурации.

Предварительные требования

Убедитесь в том, что у вас уже есть подписка Azure. Если у вас нет подписки Azure, вы можете активировать преимущества для подписчиков MSDN или зарегистрировать бесплатную учетную запись.

Azure PowerShell

Важно!

Многие шаги, описанные в этой статье, можно использовать в Azure Cloud Shell. Однако для создания сертификатов использовать Cloud Shell нельзя. Кроме того, чтобы отправить открытый ключ корневого сертификата, необходимо либо использовать Azure PowerShell локально, либо портал Azure.

В этой статье используются командлеты PowerShell. Для запуска командлетов можно использовать Azure Cloud Shell. Cloud Shell — это бесплатная интерактивная оболочка, с помощью которой можно выполнять действия, описанные в этой статье. Она включает предварительно установленные общие инструменты Azure и настроена для использования с вашей учетной записью.

Чтобы открыть Cloud Shell, просто выберите Попробовать в правом верхнем углу блока кода. Кроме того, Cloud Shell можно открыть в отдельной вкладке браузера. Для этого перейдите на страницу https://shell.azure.com/powershell. Нажмите кнопку Копировать, чтобы скопировать блоки кода. Вставьте их в Cloud Shell и нажмите клавишу ВВОД, чтобы выполнить код.

Кроме того, вы можете установить и запускать командлеты Azure PowerShell локально на компьютере. Командлеты PowerShell часто обновляются. Если вы не установили последнюю версию, применение значений, указанных в инструкциях, может привести к сбою. Чтобы узнать, какая версия Azure PowerShell установлена на вашем компьютере, используйте командлет Get-Module -ListAvailable Az. Если необходимо выполнить установку или обновление, см. статью об установке модуля Azure PowerShell.

Войти

Если вы используете PowerShell локально, откройте консоль PowerShell с повышенными привилегиями и подключитесь к своей учетной записи Azure. Командлет Connect-AzAccount запросит учетные данные. После аутентификации будут скачаны параметры вашей учетной записи, чтобы они были доступны для 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"

Создание виртуальной сети

  1. Создайте группу ресурсов.

    New-AzResourceGroup -Name $RG -Location $Location
    
  2. Создайте конфигурации подсети для виртуальной сети, присвоив им имена FrontEnd и GatewaySubnet. Эти префиксы должны быть частью объявленного адресного пространства виртуальной сети.

    $fesub = New-AzVirtualNetworkSubnetConfig -Name $FESubName -AddressPrefix $FESubPrefix
    $gwsub = New-AzVirtualNetworkSubnetConfig -Name $GWSubName -AddressPrefix $GWSubPrefix
    
  3. Создание виртуальной сети.

    В этом примере параметр сервера -DnsServer является необязательным. Если указать значение, DNS-сервер не создается. Необходимо указать IP-адрес DNS-сервера, который может разрешать имена для ресурсов, к которым вы подключаетесь из своей виртуальной сети. В этом примере мы использовали частный IP-адрес, но это не IP-адрес DNS-сервера. Подставьте собственные значения. Указанное значение используется для ресурсов, развертываемых в виртуальной сети, а не для подключений "точка — сеть" или 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-адреса, а затем укажите его при создании шлюза виртуальной сети. IP-адрес динамически назначается ресурсу при создании VPN-шлюза. В настоящее время VPN-шлюз поддерживает только динамическое выделение общедоступных IP-адресов. Вы не можете запросить назначение статического общедоступного IP-адреса. Однако это не означает, что IP-адрес изменяется после назначения VPN-шлюзу. Общедоступный IP-адрес изменяется только после удаления и повторного создания шлюза. При изменении размера, сбросе или других внутренних операциях обслуживания или обновления IP-адрес VPN-шлюза не изменяется.

    Запросите динамически назначенный общедоступный IP-адрес.

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

Создание VPN-шлюза

На этом этапе вы создадите и настроите шлюз для своей виртуальной сети. Дополнительные сведения о проверке подлинности и типе туннеля см. в разделе Указание туннеля и типа проверки подлинности в портал Azure версии этой статьи.

  • У параметра -GatewayType должно быть значение Vpn, а у параметра -VpnType — RouteBased.
  • Параметр -VpnClientProtocol используется, чтобы указать типы туннелей, которые необходимо включить. Доступны следующие варианты: OpenVPN, SSTP и IKEv2. Вы можете включить один из них или любую поддерживаемую комбинацию. Если вы хотите включить несколько типов, укажите имена через запятую. OpenVPN и SSTP не могут быть включены вместе. Для подключения клиент strongSwan в Android и Linux и собственный VPN-клиент IKEv2 в iOS и macOS используют только туннель IKEv2. Клиенты Windows сначала пытаются подключиться через IKEv2, и если им это не удается, возвращаются к SSTP. Вы можете использовать клиент OpenVPN для подключения к туннелю соответствующего типа.
  • SKU виртуального сетевого шлюза категории "Базовый" не поддерживает аутентификацию IKEv2, OpenVPN и RADIUS. Если вы планируете подключение к своей виртуальной сети клиентов Mac, не используйте SKU "Базовый".
  • Создание VPN-шлюза может занять 45 минут и более в зависимости от выбранного номера SKU шлюза.
  1. Настройте и создайте шлюз для своей виртуальной сети. Создание шлюза занимает около 45 минут.

    New-AzVirtualNetworkGateway -Name $GWName -ResourceGroupName $RG `
    -Location $Location -IpConfigurations $ipconf -GatewayType Vpn `
    -VpnType RouteBased -EnableBgp $false -GatewaySku VpnGw1 -VpnClientProtocol IkeV2,OpenVPN
    
  2. После создания шлюза его можно просмотреть, используя следующий пример. Если вы закрыли PowerShell или время ожидания истекло во время создания шлюза, вы можете снова объявить свои переменные.

    Get-AzVirtualNetworkGateway -Name $GWName -ResourceGroup $RG
    

Добавление пула адресов VPN-клиента

По завершении создания сетевого VPN-шлюза можно добавить пул адресов клиента VPN. Пул адресов VPN-клиента представляет собой диапазон, из которого VPN-клиенты будут получать IP-адреса при подключении. Используйте диапазон частных IP-адресов, который не пересекается с локальным расположением, из которого выполнено подключение, или с виртуальной сетью, к которой вы хотите подключиться.

В этом примере пул адресов VPN-клиента объявлен как переменная на предыдущем шаге.

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

Создайте сертификаты.

Важно!

Создавать сертификаты с помощью Azure Cloud Shell нельзя. Необходимо использовать один из методов, описанных в этом разделе. Чтобы использовать PowerShell, необходимо установить это средство локально.

Сертификаты используются в Azure для проверки подлинности VPN-клиентов в VPN-подключениях типа "точка-сеть". Необходимо отправить сведения об открытом ключе корневого сертификата в Azure. После этого открытый ключ считается доверенным. Сертификаты клиентов должны создаваться из доверенного корневого сертификата, а затем устанавливаться на каждом клиентском компьютере в хранилище сертификатов Certificates-Current User/Personal. Сертификат используется для проверки подлинности клиента, когда он инициирует подключение к виртуальной сети.

Используемые самозаверяющие сертификаты должны быть созданы с помощью определенных параметров. Чтобы создать самозаверяющий сертификат, воспользуйтесь инструкциями для PowerShell в Windows 10 или более поздней версии. Если у вас нет Windows 10 или более поздней версии, вы можете использовать MakeCert. Во время создания самозаверяющих корневых сертификатов и сертификатов клиента обязательно следуйте инструкциям. В противном случае создаваемые сертификаты не будут совместимы с подключениями "точка — сеть", и вы получите сообщение об ошибке подключения.

Корневой сертификат

  1. Получите CER-файл для корневого сертификата. Используйте корневой сертификат, созданный с помощью корпоративного решения (рекомендуется) или создайте самозаверяющий сертификат. После создания корневого сертификата данные общедоступного сертификата (а не закрытый ключ) экспортируйте в виде CER-файла X.509 в кодировке Base64. Этот файл будет отправлен позже в Azure.

    • Корпоративный сертификат. Если вы пользуетесь корпоративным решением центра сертификации, можно использовать существующую цепочку сертификатов. Получите CER-файл для корневого сертификата, который нужно использовать.

    • Самозаверяющийся корневой сертификат. Если вы не планируете использовать корпоративное решение для создания сертификатов, создайте самозаверяющий корневой сертификат. В противном случае создаваемые сертификаты не будут совместимы с вашими подключениями типа "точка — сеть", и при попытке подключения клиенты будут получать сообщение об ошибке подключения. Можно использовать Azure PowerShell, MakeCert или OpenSSL. На шагах, приведенных по следующим ссылкам, описывается, как создать совместимый самозаверяющий корневой сертификат:

      • Инструкции PowerShell для Windows 10 или более поздней версии. Для создания сертификатов с помощью этих инструкций требуется Windows 10 или более поздней версии и PowerShell. Сертификаты клиентов, которые создаются из корневого сертификата, можно установить на любом поддерживаемом клиенте P2S.
      • Инструкции для MakeCert. Если у вас нет компьютера с Windows 10 или более поздней версии, создайте сертификаты с помощью MakeCert. Хотя это нерекомендуемое средство, его все же можно использовать для создания сертификатов. Сертификаты клиентов, которые вы создаете из корневого сертификата, можно установить на любом поддерживаемом клиенте P2S.
      • Инструкции для Linux.
  2. После создания корневого сертификата экспортируйте данные общедоступного сертификата (не закрытый ключ) в виде файла X.509 в формате .cer с кодировкой Base64.

Сертификат клиента

  1. На каждом клиентском компьютере, который вы подключаете к виртуальной сети с помощью подключения типа "точка — сеть", должен быть установлен сертификат клиента. Его нужно создать из корневого сертификата и установить на каждый клиентский компьютер. Если вы не установите допустимый сертификат клиента, проверка подлинности завершится со сбоем, когда клиент попытается подключиться к виртуальной сети.

    Можно создать уникальный сертификат для каждого клиента или использовать один сертификат для нескольких клиентов. Преимущество уникальных клиентских сертификатов заключается в том, что при необходимости можно отозвать один сертификат. В противном случае, если потребуется отозвать сертификат для проверки подлинности, который используют несколько клиентов, вам придется создать и установить новые сертификаты для всех клиентов, которые используют этот сертификат.

    Сертификаты клиентов можно создать, используя следующие методы:

    • Корпоративный сертификат.

      • При использовании корпоративного решения для создания сертификатов создайте сертификат клиента с общим именем в формате name@yourdomain.com. Используйте этот формат вместо формата доменное_имя\имя_пользователя.

      • Убедитесь, что сертификат клиента основан на шаблоне сертификата пользователя, в котором первым указан пункт Проверка подлинности клиента. Проверить сертификат можно, дважды щелкнув его и выбрав на вкладке СведенияУлучшенный ключ.

    • Самозаверяющийся корневой сертификат. Выполните действия, описанные в следующих статьях о сертификате P2S, чтобы создаваемые сертификаты клиента были совместимы с подключениями P2S.

      Если вы создаете сертификат клиента из самозаверяющего корневого сертификата, он автоматически устанавливается на компьютере, используемом для его создания. Если вы хотите установить сертификат клиента на другом клиентском компьютере, экспортируйте его как PFX-файл вместе со всей цепочкой сертификатов. После экспорта будет создан PFX-файл, содержащий сведения корневого сертификата, необходимые для проверки подлинности клиента.

      Действия, описанные в следующих статьях, помогут создать совместимый сертификат клиента, который можно экспортировать и распространять.

      • Инструкции PowerShell для Windows 10 или более поздней версии. Для создания сертификатов с помощью этих инструкций требуется Windows 10 или более поздней версии и PowerShell. Созданные сертификаты можно установить на любой поддерживаемый клиент P2S.

      • Инструкции для MakeCert. Если у вас нет компьютера с Windows 10 или более поздней версии, создайте сертификаты с помощью MakeCert. Хотя это нерекомендуемое средство, его все же можно использовать для создания сертификатов. Созданные сертификаты можно установить на любом поддерживаемом клиенте P2S.

      • Инструкции для Linux.

  2. После создания сертификата клиента экспортируйте его. Сертификат клиента будет распространен на подключенные клиентские компьютеры.

Отправка сведений об открытом ключе корневого сертификата

Убедитесь, что создание VPN-шлюза завершено. После создания шлюза вы можете передать CER-файл (который содержит сведения об открытом ключе) для доверенного корневого сертификата в Azure. После отправки CER-файла Azure сможет использовать его для проверки подлинности клиентов, на которых установлен клиентский сертификат, созданный из доверенного корневого сертификата. При необходимости позже можно отправить дополнительные файлы доверенных корневых сертификатов (не более 20).

Примечание

Загрузить файл .cer с помощью Azure Cloud Shell нельзя. Вы можете использовать PowerShell локально на своем компьютере или использовать шаги портала Azure.

  1. Объявите переменную для имени сертификата, заменив существующее значение собственным.

    $P2SRootCertName = "P2SRootCert.cer"
    
  2. Добавьте собственный путь к файлу, а затем выполните командлеты.

    $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-клиентов и подключение к Azure

Каждый VPN-клиент настраивается с помощью файлов в пакете конфигурации профиля VPN-клиента, который вы создаете и загружаете. Пакет конфигурации содержит параметры, относящиеся к созданному VPN-шлюзу. При внесении изменений в шлюз, таких как изменение типа туннеля, сертификата или типа проверки подлинности, необходимо создать другой пакет конфигурации профиля VPN-клиента и установить его на каждом клиенте. В противном случае VPN-клиенты не смогут подключиться.

Инструкции по созданию пакета конфигурации профиля VPN-клиента, настройке VPN-клиентов и подключению к Azure см. в следующих статьях:

Чтобы проверить соединение

Эти инструкции применимы к клиентам 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.

Вы можете подключиться к виртуальной машине, которая развернута в вашей виртуальной сети, создав подключение к удаленному рабочему столу. Лучший способ проверить, можете ли вы подключиться к своей виртуальной машине, — подключиться, используя частный IP-адрес, а не имя компьютера. Таким образом, вы проверяете, можете ли вы подключиться, а не правильно ли настроено разрешение имен.

  1. Найдите частный IP-адрес. Вы можете найти частный IP-адрес виртуальной машины, просмотрев ее свойства на портале Azure или используя PowerShell.

    • Портал Azure. Найдите свою виртуальную машину на портале Azure. Просмотрите свойства виртуальной машины. Там будет указан частный IP-адрес.

    • PowerShell. Воспользуйтесь примером ниже, чтобы просмотреть список виртуальных машин и частных 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" или "подключение к удаленному рабочему столу" в поле поиска на панели задач, а затем выберите подключение к удаленному рабочему столу. Вы также можете открыть подключение к удаленному рабочему столу с помощью команды mstsc в PowerShell.

  4. В сеансе подключения к удаленному рабочему столу введите частный IP-адрес виртуальной машины. Щелкните "Показать параметры", чтобы настроить дополнительные параметры, а затем подключитесь.

Устранение неполадок с подключением

Если возникают проблемы при подключении к виртуальной машине через VPN-подключение, проверьте следующее:

  • Убедитесь, что пакет конфигурации VPN-клиента был создан после IP-адресов DNS-сервера, заданных для виртуальной сети. Если вы обновили IP-адреса DNS-сервера, создайте и установите новый пакет конфигурации VPN-клиента.

  • Используйте ipconfig, чтобы проверить IPv4-адрес, назначенный Ethernet-адаптеру на компьютере, с которого выполняется подключение. Если IP-адрес находится в диапазоне адресов виртуальной сети, к которой выполняется подключение, или в диапазоне адресов VPNClientAddressPool, адресное пространство перекрывается. В таком случае сетевой трафик не достигает Azure и остается в локальной сети.

Добавление и удаление корневого сертификата

Вы можете добавлять доверенные корневые сертификаты в Azure, а также удалять их из Azure. При удалении корневого сертификата клиенты, использующие цифровой сертификат, созданный из этого корневого сертификата, не смогут пройти проверку подлинности и поэтому не смогут подключиться. Чтобы клиенты могли проходить аутентификацию и подключаться, необходимо установить новый сертификат клиента, созданный на основе корневого сертификата, который является доверенным для Azure (то есть он передан в Azure). Для выполнения этих действий требуются командлеты Azure PowerShell, установленные локально на вашем компьютере (а не в Azure Cloud Shell). Для добавления корневых сертификатов также можно использовать портал Azure.

Добавить:

В Azure можно добавить до 20 CER-файлов корневых сертификатов. Ниже описано, как добавить корневой сертификат.

  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"
    

Как отозвать или восстановить сертификат клиента

Можно отозвать сертификаты клиента. Список отзыва сертификатов позволяет выборочно запрещать подключение типа "точка-сеть" на основе отдельных сертификатов клиента. Эта процедура отличается от удаления доверенного корневого сертификата. При удалении доверенного корневого сертификата (CER-файл) из Azure будет запрещен доступ для всех сертификатов клиента, созданных на основе отозванного корневого сертификата или подписанных им. Отзыв сертификата клиента, а не корневого сертификата, позволяет по-прежнему использовать другие сертификаты, созданные на основе корневого сертификата, для проверки подлинности.

Обычно корневой сертификат используется для управления доступом на уровнях группы или организации, а отозванный сертификат клиента — для точного контроля доступа для отдельных пользователей.

Для отмены:

  1. Получите отпечаток сертификата клиента. Дополнительные сведения см. в статье Практическое руководство. Извлечение отпечатка сертификата.

  2. Скопируйте данные в текстовый редактор и удалите все пробелы, чтобы предоставить отпечаток в виде непрерывной строки. Далее эта строка будет объявлена в качестве переменной.

  3. Объявите переменные. Обязательно объявите отпечаток, полученный на предыдущем шаге.

    $RevokedClientCert1 = "NameofCertificate"
    $RevokedThumbprint1 = "‎51ab1edd8da4cfed77e20061c5eb6d2ef2f778c7"
    $GWName = "Name_of_virtual_network_gateway"
    $RG = "Name_of_resource_group"
    
  4. Добавьте отпечаток в список отозванных сертификатов. После добавления отпечатка отобразится Succeeded.

    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: обзор сетей виртуальных машин.

Дополнительные сведения об устранении неполадок подключения "точка — сеть" см. в руководстве Устранение неполадок подключения типа "точка — сеть" Azure.