В этом руководстве показано, как устанавливать и автоматизировать SSL-сертификаты на брандмауэрах FortiGate с помощью протокола ACME с привязкой к внешним учетным записям (External Account Binding, EAB)— стандартного метода, который используют коммерческие центры сертификации для безопасной автоматизации.

Вы узнаете два способа развертывания:
- Встроенная интеграция FortiGate ACME с учетными данными EAB
- Внешняя выдача с помощью ACME.sh, затем импорт в FortiGate
Оба метода совместимы с коммерческими конечными точками ACME, которые выдают сертификаты через аутентификацию KID + HMAC.
Прежде чем начать
Вам потребуется:
- FortiGate 7.6.0 или новее (более ранние версии не поддерживают EAB)
- Корневой или администраторский доступ к FortiGate CLI
- URL-адрес каталога ACME от Вашего поставщика сертификатов
- Учетные данные EAB (идентификатор ключа + ключ HMAC)
- Доменное имя с действительными записями A/AAAA DNS, указывающими на публичный IP-адрес Вашего FortiGate
- Порт 80, доступный из Интернета для проверки HTTP-01
Шаг 1: Проверьте версию Вашей микропрограммы
Используйте интерфейс командной строки, чтобы проверить версию FortiOS:
get system status
Убедитесь, что появилась FortiOS 7.6.0 или более новая версия. Если нет, сначала обновите ее. Более старые версии не включают поля acme-eab-key-id и acme-eab-key-hmac.
Шаг 2: Создайте локальный объект сертификата для ACME
Выполните приведенную ниже команду:
config vpn certificate local
edit "acme-vpn-cert"
set enrollment acme
set acme-ca-url "https://acme.yourca.com/v2/acme"
set acme-eab-key-id "YOUR_EAB_KID"
set acme-eab-key-hmac "YOUR_EAB_HMAC_KEY"
set acme-email "[email protected]"
set acme-domain "vpn.example.com"
set acme-auth-url "http://vpn.example.com/.well-known/acme-challenge"
set auto-regenerate-days 30
set auto-regenerate enable
next
end
Эта команда создает новый объект локального сертификата с именем acme-vpn-cert и указывает FortiGate автоматически запрашивать и обновлять его у Вашего коммерческого ЦС, используя протокол ACME с привязкой к внешнему аккаунту.
Ключевые части объяснены:
set enrollment acme: указывает FortiGate, что этот сертификат будет управляться через ACME, а не импортироваться вручную.set acme-ca-url: конечная точка каталога ACME Вашего центра сертификации.-
set acme-eab-key-id/set acme-eab-key-hmac: Ваши учетные данные EAB (KID и HMAC), которые авторизуют Вашу учетную запись в ЦС. set acme-email: используется для уведомлений о продлении и контактов с CA.set acme-domain: домен, который FortiGate будет проверять и защищать.set acme-auth-url: место HTTP, где ЦС размещает и проверяет вызов ACME.-
set auto-regenerateиauto-regenerate-days: включить автоматическое продление до истечения срока действия.
Шаг 3: Проверьте путь валидации
Ваш FortiGate должен отвечать на http://vpn.example.com/.well-known/acme-challenge/.
Если у Вас включено перенаправление HTTPS, добавьте правило обхода, чтобы путь вызова оставался на обычном HTTP во время проверки.
Вот как это сделать для виртуальных серверов:
config firewall vip
edit "acme-http"
set extintf "wan1"
set extip <your-public-ip>
set mappedip "192.168.1.99"
set extport 80
set mappedport 80
set protocol tcp
next
end
Замените <your-public-ip> и 192.168.1.99 на Ваши реальные внешний и внутренний IP-адреса. Эти значения являются условными обозначениями, используемыми только для примера.
Шаг 4: Запуск первоначального запроса
Теперь, когда FortiGate знает, как связаться с Вашим ЦС и где разместить файлы проверки, Вы можете начать процесс регистрации сертификата:
execute vpn certificate local generate "acme-vpn-cert"
Эта команда указывает FortiGate на необходимость связаться с центром сертификации, выполнить проверку домена и получить подписанный сертификат автоматически.
Шаг 5: Проверьте статус сертификата
Чтобы проверить статус Вашего сертификата, выполните следующую команду:
get vpn certificate local
Вам стоит посмотреть:
Status: valid
Issuer: Your CA Name
Если статус остается незавершенным или недействительным, перепроверьте доступность DNS и порта 80.
Шаг 6: Примените сертификат
Используйте графический интерфейс или CLI, чтобы назначить его для SSL VPN, управления HTTPS или прокси-сервисов:
config vpn ssl settings
set servercert "acme-vpn-cert"
end
Вот как это сделать с помощью графического интерфейса:
Перейдите в раздел VPN > Настройки SSL-VPN > Сертификат сервера > Выберите acme-vpn-cert.
Шаг 7: Устранение неполадок и продление срока действия
Если сертификат не выдается сразу, наиболее распространенными причинами являются:
- Сервер ACME не смог связаться с Вашим URL-адресом проверки (открыт порт 80).
- Ваш KID или HMAC-ключ не соответствует тому, что ожидает ЦС.
- Вы сбились с временного лимита воспроизведения или скорости; просто повторите попытку через несколько минут.
Как только сертификат станет действительным, FortiGate будет автоматически обрабатывать продление на основе Ваших настроек auto-regenerate-days. Вы можете проверить продление в любое время с помощью:
execute vpn certificate local renew "acme-vpn-cert"
Обратная связь: Внешняя выдача (ACME.sh) и импорт в FortiGate
Если конечная точка ACME Вашего ЦС не работает напрямую с FortiGate, Вы можете выпустить сертификат извне с помощью ACME.sh и импортировать его. Вот как это сделать:
Шаг 1: Установите ACME.sh
Выполните эти команды на любой системе Linux, macOS или BSD, имеющей доступ в Интернет. Вы не будете выполнять эти команды на самом FortiGate (FortiGate не поддерживает пользовательские сценарии оболочки).
curl https://get.acme.sh | sh
source ~/.bashrc
Это установит клиент acme.sh в Вашу домашнюю директорию и загрузит его в Вашу оболочку. Замените вставку на Ваш настоящий ЦС и данные.
Шаг 2: Зарегистрируйте свою учетную запись ACME в EAB
acme.sh --register-account \
--server https://acme.yourca.com/v2/acme \
--eab-kid "YOUR_EAB_KID" \
--eab-hmac-key "YOUR_EAB_HMAC_KEY" \
-m [email protected]
Шаг 3: Выпустите сертификат
acme.sh --issue \
-d vpn.example.com \
--webroot /var/www/html \
--server https://acme.yourca.com/v2/acme \
--eab-kid "YOUR_EAB_KID" \
--eab-hmac-key "YOUR_EAB_HMAC_KEY"
Шаг 4: Найдите файлы сертификатов
После успешного выпуска Ваши файлы сертификатов хранятся в Вашей домашней директории под именем ~/.acme.sh/vpn.example.com/
Внутри этой папки Вы найдете:
- fullchain.cer — полная цепочка сертификатов
- vpn.example.com.key — Ваш закрытый ключ
- ca.cer — сертификат промежуточного ЦС
Вы можете открыть их с помощью текстового редактора или проверить детали с помощью OpenSSL:
openssl x509 -in fullchain.cer -noout -dates -issuer -subject
Шаг 5: Импорт в FortiGate
Вы можете импортировать сертификат через графический интерфейс:
Перейдите в раздел: Система > Сертификаты > Импорт > Локальный сертификат и
загрузите сертификат и закрытый ключ.
Или Вы можете использовать CLI:
config vpn certificate local
edit "acme-vpn-cert"
set private-key "-----BEGIN PRIVATE KEY-----..."
set certificate "-----BEGIN CERTIFICATE-----..."
next
end
Шаг 6: Назначение и обновление
Как только сертификат будет обновлен, не забудьте заново назначить его для Вашего SSL VPN или веб-интерфейса FortiGate (если он не применяется автоматически). Если Вы используете внешний клиент ACME на другом сервере, настройте запланированную задачу (например, задание cron) для автоматического копирования файлов новых сертификатов на FortiGate, используя SCP или вызов API.
Пример:
scp ~/.acme.sh/vpn.example.com/fullchain.cer admin@fortigate:/root/
scp ~/.acme.sh/vpn.example.com/vpn.example.com.key admin@fortigate:/root/
Затем перезагрузите сертификат:
execute vpn certificate local import "acme-vpn-cert"
Общие вопросы
Если Вы впервые настраиваете ACME с коммерческим ЦС, у Вас обычно возникает несколько вопросов. Вот краткие ответы на те из них, с которыми мы сталкиваемся чаще всего:
Могу ли я использовать эту установку с любым коммерческим CA?
Да, при условии, что Ваш провайдер поддерживает ACME + внешнюю привязку учетных записей (EAB). Такие крупные УЦ, как Sectigo и DigiCert, уже предоставляют URL-адреса каталогов ACME и учетные данные EAB.
Нужно ли мне открывать оба порта HTTP и HTTPS для проверки?
Для проверки ACME по протоколу HTTP-01 требуется только порт 80 (HTTP). Держите HTTPS (443) открытым для обычного трафика, но не перенаправляйте запросы на проверку с HTTP на HTTPS.
Что произойдет, если мой сертификат не будет продлен автоматически?
Вы можете запустить ручное обновление в любое время с помощью:
execute vpn certificate local renew "acme-vpn-cert"
Если он по-прежнему не работает, проверьте учетные данные EAB, DNS домена, а также то, что брандмауэр по-прежнему разрешает исходящий доступ к конечной точке ACME Вашего ЦС.
Могу ли я использовать одни и те же учетные данные EAB на нескольких FortiGate?
Это зависит от Вашего центра сертификации. Некоторые разрешают использовать одну учетную запись для нескольких устройств, другие выдают уникальные учетные данные для каждого заказа или домена. Всегда следуйте политике Вашего ЦС, чтобы избежать ограничений по тарифам или конфликтов учетных записей.
Заключительные слова
Теперь Вы знаете, как установить SSL-сертификат ACME наFortiGate, либо через встроенную интеграцию EAB, либо через внешнюю выдачу с помощью ACME.sh.
Оба метода отвечают корпоративным стандартам безопасности и поддерживают полностью автоматизированное обновление с помощью коммерческих центров сертификации.
Сэкономьте 10% на SSL-сертификатах при заказе сегодня!
Быстрая выдача, надежное шифрование, 99,99% доверия к браузеру, специализированная поддержка и 25-дневная гарантия возврата денег. Код купона: SAVE10

