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 вам необходимо выполнить все те же действия, и при настройке портала и гейтвея указать необходимый профиль.