PAN-OS позволяет только генерировать самоподписные сертификаты или уже импортировать существующие. Чтобы использовать Let’s Encrypt сертификат, необходимо его запросить на другом устройстве и поэтому в качестве валидации можем использовать только DNS.
В качестве DNS провайдера используется AWS Route53, для получения сертификата будем использовать Certbot, так же понадобится установленный и настроенный awscli
Получение сертификата
Устанавливаем необходимый софт (в данном примере использовалась система macOS):
brew install certbot awscli pip3 install certbot-dns-route53
Настраиваем awscli:
awscli configure
Минимальные разрешения для DNS валидации
AWS IAM Policy:
{ "Version": "2012-10-17", "Id": "certbot-dns-route53", "Statement": [ { "Effect": "Allow", "Action": [ "route53:ListHostedZones", "route53:GetChange" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "route53:ChangeResourceRecordSets", "route53:ListResourceRecordSets" ], "Resource": [ "arn:aws:route53:::hostedzone/YOURDOMAINZONEID" ] } ] }
Где "YOURDOMAINZONEID" — ID вашей hosted zone
Запрашиваем сертификат
Certbot на macOS требует root привилегий
sudo certbot certonly \ --register-unsafely-without-email \ --dns-route53 \ -d gp1.aws.artem.services
Где "gp1.aws.artem.services" — доменное имя для запрашиваемого сертификата
Так как мы запускали Certbot от пользователя root, то скопируем необходимые файлы в домашнюю директория и поменяем владельца
sudo cp /etc/letsencrypt/live/gp1.aws.artem.services/{fullchain,privkey}.pem ~/ sudo chown artem:staff ~/{fullchain,privkey}.pem
Теперь можно переходить к импорту сертификата
Firewall
Management
Для импорта сертификата переходим "Device" -> "Certificate Management" -> "Certificates" -> "Device Certificates" и кликаем "Import"
- Certificate File: fullchain.pem
- Import Private Key: ставим галочку
- Key File: privkey.pem
- Passphrase: случайный пароль (дальше использоваться нигде не будет)
Проверяем статус сертификата и обязательно, что поле "Key" имеет галочку.
Далее нам нужно создать профиль, для этого переходим "Device" -> "Certificate Management" -> "SSL/TLS Service Profile" и кликаем "Add". Выбираем наш импортированный сертификат, указываем имя и требования к TLS версиям.
Осталось указать профиль для менеджмент подключения. Переходим "Device" -> "Setup" -> "Management Settings" и нажимаем на "шестеренку". Задаем доменное имя и выбираем SSL/TLS профиль.
Осталось применить и сохранить изменения, для этого в правом верхнем углу нажимаем на кнопку "Commit"
Через несколько минут можно подключаться в WebUI по доменному имени используя протокол HTTPS
Не забудьте создать DNS запись указывающую на ваш фаервол
GlobalProtect
Для импорта сертификата для GlobalProtect вам необходимо выполнить все те же действия, и при настройке портала и гейтвея указать необходимый профиль.