Создание и экспорт сертификатов — Linux (strongSwan)

Сведения из этой статьи помогут вам создать самозаверяющий корневой сертификат, а также сертификаты клиента с помощью strongSwan. Действия, описанные в этом упражнении, помогут вам создать pem-файлы сертификата. Если вместо этого нужны PFX-файлы и .cer, ознакомьтесь с инструкциями windows-PowerShell.

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

Установка strongSwan

Выполните следующие действия, чтобы установить strongSwan.

Следующая конфигурация использовалась при указании команд:

  • Компьютер: Ubuntu Server 18.04
  • Зависимости: strongSwan

Чтобы установить необходимую конфигурацию strongSwan, используйте следующие команды:

sudo apt-get update
sudo apt-get upgrade
sudo apt install strongswan
sudo apt install strongswan-pki
sudo apt install libstrongswan-extra-plugins
sudo apt install libtss2-tcti-tabrmd0

Инструкции для интерфейса командной строки Linux (strongSwan)

Следующие шаги помогут вам создать и экспортировать сертификаты с помощью интерфейса командной строки Linux (strongSwan). Дополнительные сведения см. в дополнительных инструкциях по установке Azure CLI.

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

ipsec pki --gen --outform pem > caKey.pem
ipsec pki --self --in caKey.pem --dn "CN=VPN CA" --ca --outform pem > caCert.pem

Выведите на экран сертификат ЦС в формате base64. Это формат, поддерживаемый Azure. Этот сертификат нужно загрузить в Azure при выполнении шагов по конфигурации подключения типа "точка — сеть".

openssl x509 -in caCert.pem -outform der | base64 -w0 ; echo

Создайте сертификат пользователя.

export PASSWORD="password"
export USERNAME=$(hostnamectl --static)

ipsec pki --gen --outform pem > "${USERNAME}Key.pem"
ipsec pki --pub --in "${USERNAME}Key.pem" | ipsec pki --issue --cacert caCert.pem --cakey caKey.pem --dn "CN=${USERNAME}" --san "${USERNAME}" --flag clientAuth --outform pem > "${USERNAME}Cert.pem"

Создайте пакет p12, содержащий сертификат пользователя. Этот пакет понадобится на следующих шагах при работе с файлами конфигурации клиента.

openssl pkcs12 -in "${USERNAME}Cert.pem" -inkey "${USERNAME}Key.pem" -certfile caCert.pem -export -out "${USERNAME}.p12" -password "pass:${PASSWORD}"

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

Продолжайте настраивать параметры конфигурации типа "точка — сеть". См. статью "Настройка VPN-клиентов P2S: проверка подлинности сертификатов — Linux".