Импорт сертификата Lets Encrypt в USG

Еще есть вопросы? Отправить запрос

В этой статье базы знаний я хочу показать вам, как с помощью Raspberry Pi установить сертификат Let’s Encrypt на ваш USG.

Введение

Мы будем использовать сервер Apache и дополнение Let’s Encrypt для Apache, работающие на Raspberry Pi, чтобы загрузить сертификат для конкретного доменного имени. Также мы будем использовать Pi для обновления этого сертификата.

Мы экспортируем сертификат с Pi и импортируем его в USG.

Для чего нужен сертификат?

С сертификатом вы избавитесь от предупреждений безопасности в вашем браузере, например, для HotSpot или SSL VPN.

Требования

  1. Вам нужно доменное имя (DN) (например, hotspot.hotel-mayer.de)
  2. Если у вас нет статического IP, вы также должны обеспечить актуальность вашего DN,
    вы можете использовать опцию DDNS на вашем USG: Configuration > Network > DDNS
  3. Если вы используете USG в сценарии двойного NAT, необходимо убедиться, что HTTP и HTTPS перенаправлены на USG
  4. Вам нужно знать, как правильно использовать NAT
  5. Вам понадобится Raspberry Pi и SD-карта для ОС
  6. ПК с установленными Tera Term или Putty и WinSCP
  7. Вам нужно уметь пользоваться SSH терминалом на USG
  8. USG должен быть как минимум на версии прошивки 4.30

1. Настройка Pi и Apache

В этом сценарии нам нужна только командная строка ОС для Pi (Raspbian Stretch Lite)
пожалуйста, скачайте её с сайта Raspberry Pi и установите, как описано в документации.

https://www.raspberrypi.org/downloads/raspbian/
https://www.raspberrypi.org/documentation/installation/installing-images/README.md
 

1.1 Включение SSH и смена пароля

Теперь нужно включить SSH. Для этого вставьте SD-карту в компьютер и создайте пустой файл с именем “SSH” в корневой папке SD-карты.

После завершения установки подключите Pi к сети, запустите его и проверьте, можете ли вы подключиться по SSH (например, с помощью Putty или Tera Term)

User: pi
Password: raspberry

Рекомендация 1: смените пароль, как описано здесь:
https://www.raspberrypi.org/documentation/configuration/raspi-config.md

Рекомендация 2: убедитесь, что Pi всегда получает один и тот же IP

1.2 Обновление Pi и установка Apache-сервера

Теперь можно проверить и установить обновления

sudo apt update && sudo apt upgrade --yes

После этого установим сервер Apache

sudo apt install apache2 --yes

После установки вы должны увидеть стандартную страницу Apache, перейдя по IP-адресу Raspberry.

mceclip0.png

Теперь перезагрузим Pi:

shutdown -r

Тем временем мы настроим (временную) переадресацию портов на Pi.

2. Переадресация портов

Чтобы открыть порты 80 и 443 для интернета. Ниже описаны необходимые шаги

2.1 Измените HTTPS-порт USG, например, на 8443
Теперь вы можете получить доступ к USG так: https://192.168.1.1:8443

2.2 Настройте переадресацию портов для HTTP и HTTPS
Проверьте, можете ли вы получить доступ к тестовой странице Pi из интернета

3. Создание и экспорт сертификата

Перед получением сертификата Let's Encrypt нужно установить дополнение Let’s Encrypt для Apache. Оно поможет выполнить сертификацию вашего доменного имени.

sudo apt install certbot python-certbot-apache --yes

3.2 Генерация первого сертификата

Теперь сгенерируем первый сертификат:

sudo certbot --apache

Вам нужно будет заполнить форму. Вас спросят, хотите ли вы сделать постоянное перенаправление.

mceclip1.png

 mceclip2.png

Сертификат будет запрошен и автоматически установлен на сервер Apache.

3.3 Экспорт сертификата и его загрузка

Теперь вы можете экспортировать сертификат с отметкой времени.

sudo openssl pkcs12 -export -out /tmp/myusg_"$(date +"%Y-%m-%d")".p12 -inkey /etc/letsencrypt/live/[your_domain]/privkey.pem -in /etc/letsencrypt/live/[your_domain]/cert.pem

Вам нужно будет ввести пароль. Обязательно запомните его, он понадобится при импорте в USG.

mceclip3.png

Чтобы получить сертификат с Pi, нужно изменить права доступа для файла myusg_[date].p12.

sudo chmod 777 myusg[date].p12

Теперь вы можете скачать файл из папки /tmp с помощью WinSCP.

4. Импорт сертификата в USG

4.1 Скачайте и импортируйте корневые и промежуточные сертификаты Let's Encrypt

Чтобы USG доверял ранее экспортированному сертификату, нужно импортировать корневые и промежуточные сертификаты от Let's Encrypt:

https://letsencrypt.org/certificates/

Убедитесь, что сертификаты сохранены в формате pem (например, letsencryptauthorityx3.pem).

Теперь на USG перейдите в Configuration > Objects > Certificates > Trusted certificates и импортируйте корневые и промежуточные сертификаты.

4.2 Импортируйте и активируйте ваш сертификат

На USG перейдите в Configuration > Objects > Certificates > My Certificates и импортируйте сертификат (вам нужно будет ввести пароль).

Перейдите в Configuration > System > WWW, в разделе Server Certificate выберите ваш импортированный сертификат.

5. Правильная настройка перенаправления HTTP на HTTPS

5.1 Деактивируйте NAT для Pi

Чтобы освободить порты 80 и 443 для USG, нужно деактивировать NAT для Pi. Перейдите в Configuration > Network > NAT, найдите и деактивируйте правила, отвечающие за NAT. Пожалуйста, не удаляйте правила, они понадобятся позже.

5.2 Верните HTTPS-порт USG обратно на 443 и настройте перенаправление HTTP на HTTPS

Перейдите в Configuration > System > WWW и установите HTTPS-порт обратно на 443. Убедитесь, что перенаправление HTTP включено.

5.3 Избавьтесь от IP-адреса

Теперь USG будет использовать импортированный сертификат. Остаётся "проблема", что USG перенаправляет HTTP на HTTPS так:

https://192.168.1.1/redirect.cgi?arip=[your_dyndns]&original_url=http://[your_dyndns]/

mceclip4.png

Это, конечно, вызовет проблему с сертификатом. Чтобы окончательно избавиться от этого сообщения, откройте SSH-сессию на вашем USG и введите команды:

Router> configure terminal
Router(config)# web-auth redirect-fqdn [your_domainname]
Router(config)# write
Router(config)# exit
Router> write

Теперь перенаправление будет выглядеть так:

https://[your_domain]/redirect.cgi?arip=[your_domain]&original_url=http://[your_domain]/

mceclip5.png

 Поздравляем, теперь у вас на USG работает сертификат Let's Encrypt.

Обновление сертификата

Сертификаты Let's Encrypt действительны 90 дней. Это значит, что сертификат нужно обновлять каждые три месяца.

1. Снова откройте порты HTTP и HTTPS на Pi

а) снова измените HTTPS-порт USG (пункт 2.1)
б) снова активируйте NAT для HTTP/HTTPS для Pi (пункт 2.2)

2. Подключитесь по SSH к Pi и обновите сертификат

Откройте SSH-сессию на вашем Pi и введите команду

sudo certbot renew

Это обновит сертификат ещё на 90 дней

3. Экспортируйте и импортируйте сертификат

Теперь выполните шаги из пункта 3.3

4. Обновите сертификат на USG

Продолжите с шага 4.2

5. Верните порты обратно

Выполните шаги из пунктов 5.1 и 5.2

Поздравляем, вы обновили сертификат Let's Encrypt на вашем USG.

Отказ от ответственности: Пожалуйста, понимайте, что это лишь описание того, как установить сертификат Let's Encrypt на ваш USG. Если возникнут проблемы с Raspberry Pi, мы не можем предоставить поддержку по вопросам, связанным с Pi!

Статьи в этом разделе

Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 0 из 3
Поделиться

Комментарии

0 комментариев

Войдите в службу, чтобы оставить комментарий.