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


Создание и экспорт сертификатов — 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".