Поделиться через


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

В этой статье показано, как настроить VPN типа "точка — сеть" (P2S) для безопасного подключения отдельных клиентов под управлением Windows, Linux или macOS к виртуальной сети Azure с помощью Azure PowerShell. В этой статье содержатся основные шаги по настройке PowerShell. Дополнительные сведения о создании vpn типа P2S см. в портал Azure статье о настройке VPN типа "точка — сеть" с помощью портал Azure.

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

Схема подключения типа

Дополнительные сведения о VPN-подключении P2S см. в разделе "О VPN P2S".

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

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

Необходимые компоненты

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

Azure PowerShell

Вы можете использовать Azure Cloud Shell или запустить PowerShell локально. Подробнее: Установка и настройка Azure PowerShell.

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

  • В будущем выпуске могут появиться предупреждения о том, что тип выходного объекта этого командлета будет изменен. Это ожидаемое поведение, и такие предупреждения можно смело игнорировать.

Вход

Если вы используете Azure Cloud Shell , вы автоматически будете перенаправлены для входа в учетную запись после открытия CloudShell. Вам не нужно выполнять Connect-AzAccount. После входа вы по-прежнему можете изменить подписки при необходимости с помощью Get-AzSubscription и Select-AzSubscription.

Если вы используете PowerShell локально, откройте консоль PowerShell с повышенными привилегиями и подключитесь к учетной записи Azure. Командлет Connect-AzAccount запрашивает учетные данные. После аутентификации будут скачаны параметры вашей учетной записи, чтобы они были доступны для Azure PowerShell. Вы можете изменить подписку с помощью Get-AzSubscription и Select-AzSubscription -SubscriptionName "Name of subscription".

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

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

  1. Запросите общедоступный IP-адрес для VPN-шлюза с помощью New-AzPublicIpAddress.

    $gwpip = New-AzPublicIpAddress -Name "GatewayIP" -ResourceGroupName "TestRG1" -Location "EastUS" -AllocationMethod Static -Sku Standard
    
  2. Создайте конфигурацию IP-адреса шлюза с помощью New-AzVirtualNetworkGatewayIpConfig. Эта конфигурация ссылается при создании 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-шлюза

На этом этапе вы создадите и настроите шлюз для своей виртуальной сети. Дополнительные сведения о типе проверки подлинности и туннелях см. в разделе "Указание типа туннеля и проверки подлинности" в портал 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. Создайте шлюз виртуальной сети с типом "VPN" с помощью New-AzVirtualNetworkGateway.

    В этом примере используется номер SKU vpnGw2 поколения 2. Если вы видите ошибки ValidateSet относительно значения GatewaySKU и выполняют эти команды локально, убедитесь, что установлена последняя версия командлетов PowerShell. Последняя версия содержит новые проверенные значения для последних номеров 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-адресов, который не перекрывается с локальным расположением, из которого вы подключаетесь, или с виртуальной сетью, к которой требуется подключиться.

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

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

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

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

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

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

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

      • Инструкции PowerShell для Windows 10 или более поздней версии. Эти инструкции требуют PowerShell на компьютере под управлением Windows 10 или более поздней версии. Сертификаты клиентов, которые создаются из корневого сертификата, можно установить на любом поддерживаемом клиенте P2S.
      • Инструкции MakeCert: используйте MakeCert для создания сертификатов, если у вас нет доступа к компьютеру под управлением Windows 10 или более поздней версии. Хотя это нерекомендуемое средство, его все же можно использовать для создания сертификатов. Сертификаты клиентов, которые вы создаете из корневого сертификата, можно установить на любом поддерживаемом клиенте P2S.
      • Инструкции по Linux — OpenSSL
      • Linux — инструкции strongSwan
  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: см . инструкции strongSwan или OpenSSL .

  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 шаги. После завершения отправки отобразится возвращаемое значение PowerShell, показывающее PublicCertData. Выполнение процесса отправки сертификата занимает около 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-клиент
Сертификат
IKEv2, SSTP Windows Собственный VPN-клиент
IKEv2 macOS Собственный VPN-клиент
IKEv2 Linux strongSwan
OpenVPN Windows VPN-клиент Azure
Клиент OpenVPN версии 2.x
Клиент OpenVPN версии 3.x
OpenVPN macOS Клиент OpenVPN
OpenVPN iOS Клиент OpenVPN
OpenVPN Linux VPN-клиент Azure
Клиент OpenVPN
Microsoft Entra ID
OpenVPN Windows VPN-клиент Azure
OpenVPN macOS VPN-клиент Azure
OpenVPN Linux VPN-клиент Azure

Проверка подключения

Эти инструкции применимы к клиентам Windows.

  1. Чтобы проверить, активно ли VPN-подключение, откройте окно командной строки от имени администратора и выполните команду ipconfig/all.

  2. Просмотрите результаты. Обратите внимание, что полученный вами IP-адрес — это один из адресов в пуле адресов VPN-клиента подключения P2S, указанном в конфигурации. Вы должны увидеть результат, аналогичный приведенному ниже.

    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-адресу виртуальной машины.
  • Если вы можете подключиться к виртуальной машине с помощью частного IP-адреса, но не имени компьютера, убедитесь, что dns настроен правильно. Дополнительные сведения о том, как работает разрешение имен для виртуальных машин, см. в разделе "Разрешение имен" для виртуальных машин.

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

  • Убедитесь, что пакет конфигурации 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"
    

Отзыв и возобновление использования сертификата

Можно отозвать сертификаты клиента. Список отзыва сертификатов позволяет выборочно запретить подключение P2S на основе отдельных сертификатов клиента. Эта процедура отличается от удаления доверенного корневого сертификата. При удалении доверенного корневого сертификата (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
    

Вопросы и ответы по P2S

Дополнительные сведения о P2S см. в разделе "Вопросы и ответы по VPN-шлюз P2S"

Следующие шаги

Установив подключение, можно добавить виртуальные машины в виртуальные сети. Дополнительные сведения о виртуальных машинах см. здесь. Дополнительные сведения о сетях и виртуальных машинах см. в статье Azure и Linux: обзор сетей виртуальных машин.

Сведения об устранении неполадок P2S: устранение неполадок с подключением к Azure P2S.