Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
SKU шлюза приложений версии 2 представляет использование доверенных корневых сертификатов для обеспечения подключения по протоколу TLS с серверами back-end. Это положение отменяет использование сертификатов проверки подлинности (индивидуальных сертификатов Leaf), необходимых для SKU версии 1. Корневой сертификат — это сертификат в кодировке Base-64 X.509(.CER) в формате корневого сертификата с серверной стороны сертификатов. Он определяет корневой центр сертификации ( ЦС), выдавший сертификат сервера, а затем сертификат сервера используется для связи TLS/SSL.
Шлюз приложений доверяет сертификату веб-сайта по умолчанию, если он подписан известным ЦС (например, GoDaddy или DigiCert). В этом случае не нужно явно отправлять корневой сертификат. Дополнительные сведения см. в разделе «Обзор терминации TLS и от конца до конца TLS с помощью Application Gateway». Однако, если у вас есть среда разработки и тестирования и вы не хотите приобретать сертификат, подписанный проверенным центром сертификации (ЦС), можно создать собственный пользовательский корневой центр сертификации (ЦС) и конечный сертификат, подписанный этим корневым ЦС.
Примечание.
Самогенерированные сертификаты по умолчанию не являются доверенными и могут быть трудно поддерживать. Кроме того, они могут использовать устаревшие хэши и наборы шифров, которые могут не быть сильными. Для повышения безопасности приобретите сертификат, подписанный известным центром сертификации.
Для создания частного сертификата для внутренних подключений TLS можно использовать следующие параметры.
Используйте средство генератора частных сертификатов с помощью одного щелчка мыши. Используя предоставленное доменное имя (общее имя), это средство выполняет те же действия, что и описано в этой статье для создания сертификатов root и server. С помощью созданных файлов сертификатов можно немедленно загрузить корневой сертификат (.CER) в настройки серверной части шлюза и соответствующую цепочку сертификатов (.PFX) на внутренний сервер. Пароль для PFX-файла также предоставляется в скачанном ZIP-файле.
Используйте команды OpenSSL для настройки и создания сертификатов в соответствии с вашими потребностями. Продолжайте следовать инструкциям в этой статье, если вы хотите сделать это полностью самостоятельно.
В этой статье раскрываются следующие темы:
- Создание собственного центра сертификации
- Создайте самоподписанный сертификат, подписанный вашим пользовательским центром сертификации
- Отправка самозаверяющего корневого сертификата в шлюз приложений для проверки подлинности серверного сервера
Предпосылки
OpenSSL на компьютере под управлением Windows или Linux
Хотя для управления сертификатами могут быть доступны другие средства, в этом руководстве используется OpenSSL. OpenSSL можно найти в комплекте с множеством дистрибутивов Linux, таких как Ubuntu.
Веб-сервер
Например, Apache, IIS или NGINX для проверки сертификатов.
Номер SKU шлюза приложений версии 2
Если у вас нет существующего шлюза приложений, см. краткое руководство. Прямой веб-трафик с помощью шлюза приложений Azure на портале Azure.
Создание сертификата корневого УЦ
Создайте корневой сертификат ЦС с помощью OpenSSL.
Создание корневого ключа
Войдите на компьютер, где установлен OpenSSL и выполните следующую команду. При этом создается зашифрованный ключ.
openssl ecparam -out contoso.key -name prime256v1 -genkey
Создайте корневой сертификат и самозаверяйте его.
Используйте следующую команду, чтобы создать запрос на подпись сертификата (CSR).
openssl req -new -sha256 -key contoso.key -out contoso.csr
При появлении запроса введите пароль для корневого ключа и сведения об организации для пользовательского центра сертификации (ЦС), например, страна/регион, штат, организация, подразделение и полное доменное имя (это домен издателя).
Чтобы создать корневой сертификат, используйте следующую команду.
openssl x509 -req -sha256 -days 365 -in contoso.csr -signkey contoso.key -out contoso.crt
Предыдущие команды создают корневой сертификат. Вы будете использовать это для подписывания сертификата сервера.
Создание сертификата сервера
Затем вы создадите сертификат сервера с помощью OpenSSL.
Создание ключа сертификата
Используйте следующую команду, чтобы создать ключ для сертификата сервера.
openssl ecparam -out fabrikam.key -name prime256v1 -genkey
Создайте запрос на подписание сертификата (CSR)
CSR — это открытый ключ, который предоставляется ЦС при запросе сертификата. ЦС выдает сертификат для этого конкретного запроса.
Примечание.
CN (общее имя) для сертификата сервера должен отличаться от домена издателя. Например, в этом случае cn для издателя является www.contoso.com
, а CN сертификата сервера — www.fabrikam.com
это .
Чтобы создать CSR, используйте следующую команду:
openssl req -new -sha256 -key fabrikam.key -out fabrikam.csr
При появлении запроса введите пароль для корневого ключа и сведения об организации для настраиваемого Центра сертификации: страна или регион, штат, организация, учетная единица и полное доменное имя. Это домен веб-сайта, который должен отличаться от издателя.
Создайте сертификат с помощью CSR и ключа и подпишите его с помощью корневого ключа ЦС.
Чтобы создать сертификат, используйте следующую команду:
openssl x509 -req -in fabrikam.csr -CA contoso.crt -CAkey contoso.key -CAcreateserial -out fabrikam.crt -days 365 -sha256
Проверка только что созданного сертификата
Используйте следующую команду, чтобы распечатать выходные данные файла CRT и проверить его содержимое:
openssl x509 -in fabrikam.crt -text -noout
Проверьте файлы в каталоге и убедитесь, что у вас есть следующие файлы:
- contoso.crt
- contoso.key
- fabrikam.crt
- fabrikam.key
Настройка сертификата в параметрах TLS веб-сервера
На веб-сервере настройте TLS с помощью файлов fabrikam.crt и fabrikam.key. Если веб-сервер не может принимать два файла, их можно объединить в один PEM-файл или PFX-файл с помощью команд OpenSSL.
СЛУЖБЫ IIS
Инструкции по импорту сертификатов и отправке их в качестве сертификата сервера в IIS см. в статье "Практическое руководство. Установка импортированных сертификатов на веб-сервере в Windows Server 2003".
Инструкции по привязке TLS см. в разделе "Настройка SSL" в IIS 7.
Апачи
Следующая конфигурация является примером виртуального узла, настроенного для SSL в Apache:
<VirtualHost www.fabrikam:443>
DocumentRoot /var/www/fabrikam
ServerName www.fabrikam.com
SSLEngine on
SSLCertificateFile /home/user/fabrikam.crt
SSLCertificateKeyFile /home/user/fabrikam.key
</VirtualHost>
NGINX
Следующая конфигурация является примером блока сервера NGINX с конфигурацией TLS:
Доступ к серверу для проверки конфигурации
Добавьте корневой сертификат в доверенное корневое хранилище компьютера. При доступе к веб-сайту убедитесь, что в браузере отображается вся цепочка сертификатов.
Примечание.
Предполагается, что DNS настроен для указания имени веб-сервера (в этом примере)
www.fabrikam.com
на IP-адрес веб-сервера. В противном случае можно изменить файл hosts для разрешения имени.Перейдите на веб-сайт и щелкните значок блокировки в адресном поле браузера, чтобы проверить сведения о сайте и сертификате.
Проверка конфигурации с помощью OpenSSL
Кроме того, для проверки сертификата можно использовать OpenSSL.
openssl s_client -connect localhost:443 -servername www.fabrikam.com -showcerts
Отправка корневого сертификата в параметры HTTP шлюза приложений
Чтобы загрузить сертификат в Application Gateway, необходимо экспортировать сертификат .crt в формате .cer с кодировкой Base-64. Так как CRT уже содержит открытый ключ в формате в кодировке Base-64, просто переименуйте расширение файла из CRT в .cer.
Портал Azure
Чтобы отправить доверенный корневой сертификат на портале, выберите параметры серверной части и выберите HTTPS в протоколе серверной части.
Azure PowerShell
Кроме того, вы можете использовать Azure CLI или Azure PowerShell для отправки корневого сертификата. Следующий код — это пример Azure PowerShell.
Примечание.
В следующем примере в шлюз приложений добавляется доверенный корневой сертификат, создается новый параметр HTTP и добавляется новое правило, если внутренний пул и прослушиватель уже существуют.
## Add the trusted root certificate to the Application Gateway
$gw=Get-AzApplicationGateway -Name appgwv2 -ResourceGroupName rgOne
Add-AzApplicationGatewayTrustedRootCertificate `
-ApplicationGateway $gw `
-Name CustomCARoot `
-CertificateFile "C:\Users\surmb\Downloads\contoso.cer"
$trustedroot = Get-AzApplicationGatewayTrustedRootCertificate `
-Name CustomCARoot `
-ApplicationGateway $gw
## Get the listener, backend pool and probe
$listener = Get-AzApplicationGatewayHttpListener `
-Name basichttps `
-ApplicationGateway $gw
$bepool = Get-AzApplicationGatewayBackendAddressPool `
-Name testbackendpool `
-ApplicationGateway $gw
Add-AzApplicationGatewayProbeConfig `
-ApplicationGateway $gw `
-Name testprobe `
-Protocol Https `
-HostName "www.fabrikam.com" `
-Path "/" `
-Interval 15 `
-Timeout 20 `
-UnhealthyThreshold 3
$probe = Get-AzApplicationGatewayProbeConfig `
-Name testprobe `
-ApplicationGateway $gw
## Add the configuration to the HTTP Setting and don't forget to set the "hostname" field
## to the domain name of the server certificate as this will be set as the SNI header and
## will be used to verify the backend server's certificate. Note that TLS handshake will
## fail otherwise and might lead to backend servers being deemed as Unhealthy by the probes
Add-AzApplicationGatewayBackendHttpSettings `
-ApplicationGateway $gw `
-Name testbackend `
-Port 443 `
-Protocol Https `
-Probe $probe `
-TrustedRootCertificate $trustedroot `
-CookieBasedAffinity Disabled `
-RequestTimeout 20 `
-HostName www.fabrikam.com
## Get the configuration and update the Application Gateway
$backendhttp = Get-AzApplicationGatewayBackendHttpSettings `
-Name testbackend `
-ApplicationGateway $gw
Add-AzApplicationGatewayRequestRoutingRule `
-ApplicationGateway $gw `
-Name testrule `
-RuleType Basic `
-BackendHttpSettings $backendhttp `
-HttpListener $listener `
-BackendAddressPool $bepool
Set-AzApplicationGateway -ApplicationGateway $gw
Проверка работоспособности серверной части шлюза приложений
- Щелкните на Работоспособность сервера вашего шлюза приложений, чтобы проверить состояние теста.
- Вы увидите, что состояние работоспособно для пробы HTTPS.
Дальнейшие действия
Чтобы узнать больше о SSL\TLS в шлюзе приложений, см. раздел Обзор завершения TLS и полной маршрутизации TLS с помощью шлюза приложений.