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


Настройка клиента OpenVPN Connect 3.x для подключений проверки подлинности сертификатов P2S — Windows

Если VPN-шлюз типа "точка — сеть" (P2S) настроен для использования OpenVPN и проверки подлинности сертификата, вы можете подключиться к виртуальной сети с помощью клиента OpenVPN. В этой статье описаны действия по настройке клиента OpenVPN Connect 3.x и подключению к виртуальной сети. Существуют некоторые различия в конфигурации клиента OpenVPN 2.x и клиента OpenVPN Connect 3.x. В этой статье рассматривается клиент OpenVPN Connect 3.x.

Подготовка к работе

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

Authentication method Тип туннеля ОС клиента 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

Примечание.

Клиент OpenVPN управляется независимо и не контролируется корпорацией Майкрософт. Это означает, что корпорация Майкрософт не контролирует свой код, сборки, план развития или юридические аспекты. Если клиенты сталкиваются с любыми ошибками или проблемами с клиентом OpenVPN, они должны напрямую обратиться в службу поддержки OpenVPN Inc. Рекомендации, приведенные в этой статье, приведены как есть и не проверены OpenVPN Inc. Они предназначены для поддержки клиентов, которые уже знакомы с клиентом и хотят использовать его для подключения к Azure VPN-шлюз в настройке VPN типа "точка — сеть".

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

В этой статье предполагается, что вы уже выполнили следующие предварительные требования:

  • Вы создали и настроили VPN-шлюз для проверки подлинности сертификата типа "точка — сеть" и типа туннеля OpenVPN. Инструкции по настройке параметров сервера для подключений VPN-шлюз P2S — проверка подлинности на основе сертификата.
  • Вы создали и скачали файлы конфигурации VPN-клиента. Инструкции см. в разделе "Создание файлов конфигурации профиля VPN-клиента".
  • Вы можете создать сертификаты клиента или получить соответствующие сертификаты клиента, необходимые для проверки подлинности.

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

Чтобы подключиться к Azure с помощью клиента OpenVPN Connect 3.x с помощью проверки подлинности сертификата, для каждого подключающегося клиентского компьютера требуются следующие элементы:

Рабочий процесс

Рабочий процесс для этой статьи:

  1. Создайте и установите сертификаты клиента, если вы еще этого не сделали.
  2. Просмотрите файлы конфигурации профиля VPN-клиента, содержащиеся в созданном пакете конфигурации профиля VPN-клиента.
  3. Настройте клиент OpenVPN Connect.
  4. Подключитесь к Azure.

Создание и установка сертификатов клиента

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

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

  • Сведения о работе с сертификатами см . на сайте": создание сертификатов.
  • Чтобы просмотреть установленный сертификат клиента, откройте раздел Управление сертификатами пользователей. Сертификат клиента устанавливается в каталог Current User\Personal\Certificates.

Установка сертификата клиента

Каждому компьютеру требуется сертификат клиента для проверки подлинности. Если сертификат клиента еще не установлен на локальном компьютере, его можно установить, выполнив следующие действия.

  1. Найдите сертификат клиента. Дополнительные сведения о сертификатах клиента см. в разделе "Установка сертификатов клиента".
  2. Установите сертификат клиента. Как правило, это можно сделать, дважды щелкнув файл сертификата и указав пароль (при необходимости).

Просмотр файлов конфигурации

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

Найдите и распакуйте созданный пакет конфигурации профиля VPN-клиента. Для проверки подлинности сертификата и OpenVPN должна появиться папка OpenVPN . Если папка не отображается, проверьте следующее:

Настройка клиента

  1. Скачайте и установите клиент OpenVPN версии 3.x с официального веб-сайта OpenVPN.

  2. Найдите пакет конфигурации профиля VPN-клиента, созданный и скачанный на компьютер. Извлеките пакет. Перейдите в папку OpenVPN и откройте файл конфигурации vpnconfig.ovpn с помощью Блокнота.

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

  4. Из дочернего сертификата извлеките закрытый ключ и отпечаток base64 из PFX. Существует несколько способов это сделать. Это можно сделать с помощью OpenSSL на компьютере. Файл profileinfo.txt содержит закрытый ключ, отпечаток для ЦС и сертификат клиента. Не забудьте использовать отпечаток сертификата клиента.

    openssl pkcs12 -in "filename.pfx" -nodes -out "profileinfo.txt"
    
  5. Перейдите к файлу vpnconfig.ovpn , который вы открыли в Блокноте. Заполните раздел между <cert> и </cert>, получив значения для $CLIENT_CERTIFICATE, и $ROOT_CERTIFICATE как показано в следующем примере.

       # P2S client certificate
       # please fill this field with a PEM formatted cert
       <cert>
       $CLIENT_CERTIFICATE
       $ROOT_CERTIFICATE
       </cert>
    
    • Откройте в Блокноте файл profileinfo.txt с предыдущего шага. Каждый сертификат можно определить, просмотрев строку subject=. Например, если ваш дочерний сертификат называется P2SChildCert, сертификат клиента будет указан после атрибута subject=CN = P2SChildCert.
    • Для каждого сертификата в цепочке скопируйте текст "-----BEGIN CERTIFICATE-----" и "-----END CERTIFICATE-----" (включая текст между ними).
  6. Откройте файл profileinfo.txt в Блокноте. Чтобы получить закрытый ключ, выделите текст между "-----BEGIN PRIVATE KEY-----" и "-----END PRIVATE KEY-----" (включая эти строки) и скопируйте его.

  7. Вернитесь к файлу vpnconfig.ovpn в Блокноте и найдите этот раздел. Вставьте закрытый ключ, заменив все между <key> и </key>.

    # P2S client root certificate private key
    # please fill this field with a PEM formatted key
    <key>
    $PRIVATEKEY
    </key>
    
  8. Закомментируйте строку "журнал openvpn.log". Если он не закомментирован, клиент OpenVPN сообщает, что журнал больше не поддерживается. Пример профиля пользователя см. в примере о том, как закомментировать строку журнала. Закомментируя строку журнала, вы по-прежнему можете получить доступ к журналам через клиентский интерфейс OpenVPN. Чтобы получить доступ, щелкните значок журнала в правом верхнем углу пользовательского интерфейса клиента. Корпорация Майкрософт рекомендует клиентам проверять документацию по подключению OpenVPN для расположения файла журнала, так как ведение журнала контролируется клиентом OpenVPN.

  9. Не изменяйте остальные поля. Для подключения к VPN используйте заполненную конфигурацию на входе клиента.

  10. Импортируйте файл vpnconfig.ovpn в клиенте OpenVPN.

  11. Щелкните правой кнопкой мыши значок OpenVPN в области системы и нажмите кнопку "Подключить".

Пример профиля пользователя

В следующем примере показан файл конфигурации профиля пользователя для клиентов OpenVPN Connect 3.x. В этом примере показан закомментирован файл журнала и добавлен параметр "ping-restart 0", чтобы предотвратить периодическое повторное подключение из-за отсутствия трафика, отправляемого клиенту.

client
remote <vpnGatewayname>.ln.vpn.azure.com 443
verify-x509-name <IdGateway>.ln.vpn.azure.com name
remote-cert-tls server

dev tun
proto tcp
resolv-retry infinite
nobind

auth SHA256
cipher AES-256-GCM
persist-key
persist-tun

tls-timeout 30
tls-version-min 1.2
key-direction 1

#log openvpn.log
#inactive 0
ping-restart 0 
verb 3

# P2S CA root certificate
<ca>
-----BEGIN CERTIFICATE-----
……
……..
……..
……..

-----END CERTIFICATE-----
</ca>

# Pre Shared Key
<tls-auth>
-----BEGIN OpenVPN Static key V1-----
……..
……..
……..

-----END OpenVPN Static key V1-----
</tls-auth>

# P2S client certificate
# Please fill this field with a PEM formatted client certificate
# Alternatively, configure 'cert PATH_TO_CLIENT_CERT' to use input from a PEM certificate file.
<cert>
-----BEGIN CERTIFICATE-----
……..
……..
……..
-----END CERTIFICATE-----
</cert>

# P2S client certificate private key
# Please fill this field with a PEM formatted private key of the client certificate.
# Alternatively, configure 'key PATH_TO_CLIENT_KEY' to use input from a PEM key file.
<key>
-----BEGIN PRIVATE KEY-----
……..
……..
……..
-----END PRIVATE KEY-----
</key>

Промежуточные сертификаты

Если цепочка сертификатов включает промежуточные сертификаты, необходимо передать промежуточные сертификаты в VPN-шлюз Azure. Это предпочтительный метод, который следует использовать независимо от VPN-клиента, который вы выбираете для подключения. В предыдущих версиях можно указать промежуточные сертификаты в профиле пользователя. Это больше не поддерживается в клиенте OpenVPN Connect версии 3.x.

При работе с промежуточными сертификатами промежуточный сертификат должен быть отправлен после корневого сертификата.

Промежуточный сертификат для конфигурации типа

Подключается

При периодическом повторном подключении из-за отсутствия трафика, отправляемого клиенту, можно добавить параметр "ping-restart 0" в профиль, чтобы предотвратить отключение от повторного подключения. Это описано в документации OpenVPN Connect следующим образом: "--ping-restart n Аналогично --ping-exit, но активируйте SIGUSR1 перезапуск после n секунд, не получая проверки связи или другого пакета из удаленного доступа".

Пример добавления этого параметра см. в примере профиля пользователя.

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

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