Создание и экспорт сертификатов — Linux — OpenSSL
В этой статье показано, как создать самозаверяющий корневой сертификат и создать pem-файлы сертификата клиента с помощью OpenSSL. Если вместо этого нужны PFX-файлы и .cer, ознакомьтесь с инструкциями windows-PowerShell.
Необходимые компоненты
Чтобы использовать эту статью, необходимо иметь компьютер под управлением OpenSSL.
Самозаверяющий корневой сертификат
В этом разделе показано, как создать самозаверяющий корневой сертификат. После создания сертификата экспортируйте файл данных данных открытого ключа корневого сертификата.
В следующем примере показано, как создать самозаверяющий корневой сертификат.
openssl genrsa -out caKey.pem 2048 openssl req -x509 -new -nodes -key caKey.pem -subj "/CN=VPN CA" -days 3650 -out caCert.pem
Печать общедоступных данных самозаверяющего корневого сертификата в формате base64. Это формат, поддерживаемый Azure. Отправьте этот сертификат в Azure в рамках действий по настройке P2S.
openssl x509 -in caCert.pem -outform der | base64 -w0 && echo
Сертификаты клиентов
В этом разделе описано, как создать сертификат пользователя (сертификат клиента). Файлы сертификатов создаются в локальном каталоге, в котором выполняются команды. Вы можете использовать один и тот же сертификат клиента на каждом клиентском компьютере или создать сертификаты, относящиеся к каждому клиенту. Важно отметить, что сертификат клиента подписан корневым сертификатом.
Чтобы создать сертификат клиента, используйте следующие примеры.
export PASSWORD="password" export USERNAME=$(hostnamectl --static) # Generate a private key openssl genrsa -out "${USERNAME}Key.pem" 2048 # Generate a CSR (Certificate Sign Request) openssl req -new -key "${USERNAME}Key.pem" -out "${USERNAME}Req.pem" -subj "/CN=${USERNAME}" # Sign the CSR using the CA certificate and CA key openssl x509 -req -days 365 -in "${USERNAME}Req.pem" -CA caCert.pem -CAkey caKey.pem -CAcreateserial -out "${USERNAME}Cert.pem" -extfile <(echo -e "subjectAltName=DNS:${USERNAME}\nextendedKeyUsage=clientAuth")
Чтобы проверить сертификат клиента, используйте следующий пример.
openssl verify -CAfile caCert.pem caCert.pem "${USERNAME}Cert.pem"
Следующие шаги
Чтобы продолжить действия по настройке, ознакомьтесь с проверкой подлинности сертификата "точка — сеть".