В тази статия от базата знания бих искал да ви покажа как можете да използвате Raspberry Pi, за да инсталирате сертификат Let’s Encrypt на вашия USG.
Въведение
Ще използваме Apache сървър и добавката Let’s Encrypt за Apache, работещи на Raspberry Pi, за да изтеглим сертификат за конкретно домейн име. Също така ще използваме Pi, за да обновяваме този сертификат.
Ще експортираме сертификата от Pi и ще го импортираме в USG.
За какво служи сертификатът?
С този сертификат ще се избавите от предупрежденията за сигурност в браузъра си. Например за HotSpot или SSL VPN.
Изисквания
- Трябва да имате домейн име (DN) (например hotspot.hotel-mayer.de)
- Ако нямате статичен IP, трябва да се уверите, че вашият DN е актуален,
можете да използвате опцията DDNS на вашия USG: Configuration > Network > DDNS - Ако използвате USG в сценарий с двойно NAT, трябва да се уверите, че HTTP и HTTPS са пренасочени към USG
- Трябва да знаете как да използвате NAT правилно
- Трябва да имате Raspberry Pi и SD карта за операционната система
- Компютър с инсталирани Tera Term или Putty и WinSCP
- Трябва да знаете как да използвате SSH терминала на USG
- USG трябва да е с поне FW версия 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 Pi.
Сега е време да рестартирате 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 --yes3.2 Генериране на първия сертификат
Сега ще генерираме първия сертификат:
sudo certbot --apacheТрябва да преминете през формата и да я попълните правилно. Ще бъдете попитани дали искате да направите пренасочване постоянно.
Сертификатът ще бъде заявен и автоматично инсталиран на 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.
За да вземете сертификата от Pi, трябва да промените правата за достъп до файла myusg_[date].p12.
sudo chmod 777 myusg[date].p12Сега можете да вземете файла с WinSCP от папката /tmp.
4. Импортиране на сертификата в USG
4.1 Изтегляне и импортиране на root и междинните сертификати на Let's Encrypt
За да накараме USG да се довери на сертификата, който експортирахме по-рано, трябва да импортираме root и междинните сертификати от Let's Encrypt:
https://letsencrypt.org/certificates/
Уверете се, че сертификатите са запазени като pem файлове (например letsencryptauthorityx3.pem).
Сега в USG отидете на Configuration > Objects > Certificates > Trusted certificates и импортирайте root и междинните сертификати.
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]/
Това разбира се ще създаде проблем със сертификата. За да се избавите окончателно от това съобщение, трябва да отворите 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]/
Поздравления, вече имате работещ сертификат Let’s Encrypt на вашия USG.
Обновяване на сертификата
Сертификатите на Let's Encrypt са валидни за 90 дни. Това означава, че трябва да обновявате сертификата на всеки три месеца.
1. Отворете отново HTTP и HTTPS портовете към Pi
a ) сменете HTTPS портовете на USG отново (Точка 2.1)
b ) Активирайте отново 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 коментараВлезте в услугата, за да оставите коментар.