În acest articol din baza de cunoștințe, aș dori să vă arăt cum puteți folosi un Raspberry Pi pentru a instala un certificat Let’s Encrypt pe USG-ul dumneavoastră.
Introducere
Vom folosi un server Apache și suplimentul Let’s Encrypt pentru Apache care rulează pe un Raspberry Pi pentru a descărca un certificat pentru un anumit nume de domeniu. De asemenea, vom folosi Pi-ul pentru a actualiza acest certificat.
Vom exporta certificatul de pe Pi și îl vom importa pe USG.
Care este utilitatea unui certificat?
Cu ajutorul certificatului, veți scăpa de avertismentele de securitate din browserul dumneavoastră. De exemplu pentru HotSpot sau SSL VPN.
Cerințe
- Aveți nevoie de un nume de domeniu (DN) (de exemplu hotspot.hotel-mayer.de)
- Dacă nu aveți o adresă IP statică, trebuie să vă asigurați că numele de domeniu este actualizat,
puteți folosi opțiunea DDNS de pe USG: Configuration > Network > DDNS - Dacă folosiți USG într-un scenariu double NAT, trebuie să vă asigurați că porturile HTTP și HTTPS sunt redirecționate către USG
- Trebuie să știți cum să folosiți NAT corect
- Aveți nevoie de un Raspberry Pi și un card SD pentru sistemul de operare
- Un PC cu Tera Term sau Putty și WinSCP instalate
- Trebuie să știți cum să folosiți terminalul SSH pe USG
- USG trebuie să aibă cel puțin versiunea de firmware 4.30
1. Configurați Pi-ul și Apache
În acest scenariu, avem nevoie doar de un sistem de operare bazat pe linie de comandă pentru Pi (Raspbian Stretch Lite)
vă rugăm să îl descărcați de pe site-ul Raspberry Pi și să îl instalați conform documentației.
https://www.raspberrypi.org/downloads/raspbian/
https://www.raspberrypi.org/documentation/installation/installing-images/README.md
1.1 Activarea SSH și schimbarea parolei
Acum trebuie să activați SSH. Pentru aceasta, introduceți cardul SD în calculatorul dumneavoastră și creați un fișier gol numit „SSH” în folderul rădăcină al cardului SD.
După ce instalarea este finalizată, introduceți Pi-ul în rețeaua dumneavoastră, porniți-l și verificați dacă puteți accesa prin SSH (de exemplu cu Putty sau Tera Term)
User: pi
Password: raspberryRecomandarea 1: schimbați parola după cum este descris aici:
https://www.raspberrypi.org/documentation/configuration/raspi-config.md
Recomandarea 2: Asigurați-vă că Pi-ul va primi întotdeauna aceeași adresă IP
1.2 Actualizați Pi-ul și instalați serverul Apache
Acum putem verifica și instala actualizările
sudo apt update && sudo apt upgrade --yesDupă ce acest proces este finalizat, putem instala serverul Apache
sudo apt install apache2 --yesDupă finalizarea instalării, ar trebui să puteți vedea pagina web implicită Apache accesând IP-ul Raspberry-ului.
Acum este momentul să reporniți Pi-ul:
shutdown -rÎntre timp, vom seta redirecționarea (temporară) a porturilor către Pi.
2. Redirecționarea porturilor
Pentru a avea porturile 80 și 443 deschise către internet. Mai jos găsiți pașii necesari
2.1 Schimbați portul HTTPS al USG-ului, de exemplu la 8443
Acum puteți accesa USG astfel: https://192.168.1.1:8443
2.2 Configurați redirecționarea porturilor pentru HTTP și HTTPS
Vă rugăm să verificați dacă puteți accesa pagina de test a Pi-ului de pe internet
3. Creați și exportați un certificat
Înainte de a putea avea un certificat Let's Encrypt, trebuie să instalăm suplimentul Let’s Encrypt pentru Apache. Acesta va ajuta la certificarea numelui dumneavoastră de domeniu.
sudo apt install certbot python-certbot-apache --yes3.2 Generarea primului certificat
Acum vom genera primul certificat:
sudo certbot --apacheTrebuie să completați formularul corespunzător. Vi se va cere dacă doriți să redirecționați permanent.
Certificatul va fi solicitat și instalat automat pe serverul Apache.
3.3 Exportarea certificatului și descărcarea certificatului
Acum puteți exporta certificatul cu un ștampilă temporală.
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.pemTrebuie să introduceți o parolă. Vă rugăm să vă asigurați că vă amintiți parola, deoarece o veți avea nevoie și pentru importul în USG.
Pentru a obține certificatul de pe Pi, trebuie să schimbăm drepturile de acces pentru fișierul myusg_[date].p12.
sudo chmod 777 myusg[date].p12Acum puteți prelua fișierul cu WinSCP din folderul /tmp.
4. Importați certificatul în USG
4.1 Descărcați și importați certificatele rădăcină și intermediare Let's Encrypt
Pentru ca USG să aibă încredere în certificatul pe care l-am exportat anterior, trebuie să importăm certificatele rădăcină și intermediare de la Let's Encrypt:
https://letsencrypt.org/certificates/
Asigurați-vă că certificatele sunt salvate ca fișiere pem (de exemplu letsencryptauthorityx3.pem).
Acum pe USG, accesați Configuration > Objects > Certificates > Trusted certificates și importați certificatele rădăcină și intermediare.
4.2 Importați și activați certificatul dumneavoastră
Pe USG mergeți la Configuration > Objects > Certificates > My Certificates și importați certificatul (Trebuie să introduceți și parola)
Mergi la Configuration > System > WWW sub Server Certificate acum puteți alege certificatul importat.
5. Configurați corect redirecționarea HTTP către HTTPS
5.1 Dezactivați NAT pentru Pi
Pentru a elibera porturile 80 și 443 pentru USG, trebuie să dezactivați NAT pentru Pi. Mergi la Configuration > Network > NAT și găsiți și dezactivați regulile responsabile pentru NAT. Vă rugăm să nu ștergeți regulile, deoarece le veți avea nevoie din nou mai târziu.
5.2 Setați portul HTTPS al USG înapoi la 443 și configurați redirecționarea HTTP către HTTPS
Mergi la Configuration > System > WWW și setați portul HTTPS înapoi la 443. Asigurați-vă că redirecționarea HTTP este activată.
5.3 Scăpați de adresa IP
Acum USG va folosi certificatul importat. „Problema” rămasă este că USG va redirecționa HTTP către HTTPS astfel:
https://192.168.1.1/redirect.cgi?arip=[your_dyndns]&original_url=http://[your_dyndns]/
Acest lucru, desigur, va crea o problemă de certificat. Pentru a scăpa definitiv de acest mesaj, trebuie să deschideți o sesiune SSH către USG și să introduceți aceste comenzi:
Router> configure terminal
Router(config)# web-auth redirect-fqdn [your_domainname]
Router(config)# write
Router(config)# exit
Router> writeAcum redirecționarea va arăta astfel:
https://[your_domain]/redirect.cgi?arip=[your_domain]&original_url=http://[your_domain]/
Felicitări, acum aveți un certificat Let's Encrypt funcțional pe USG-ul dumneavoastră.
Reînnoiți certificatul
Certificatele Let's Encrypt sunt valabile 90 de zile. Aceasta înseamnă că trebuie să reînnoiți certificatul la fiecare trei luni.
1. Deschideți din nou porturile HTTP și HTTPS către Pi
a ) schimbați din nou porturile HTTPS ale USG-ului (Punctul 2.1)
b ) Reactivați NAT pentru HTTP/HTTPS pentru Pi (Punctul 2.2)
2. Conectați-vă prin SSH la Pi și reînnoiți certificatul
Deschideți o sesiune SSH către Pi și introduceți această comandă
sudo certbot renewAceasta va reînnoi certificatul pentru încă 90 de zile
3. Exportați și importați certificatul
Acum trebuie să urmați pașii din punctul 3.3
4. Actualizați certificatul pe USG
Acum continuați cu pasul 4.2
5. Schimbați porturile înapoi
Urmați pașii din 5.1 și 5.2
Felicitări, acum ați reînnoit certificatul Let's Encrypt pe USG-ul dumneavoastră.
Disclaimer: Vă rugăm să înțelegeți că aceasta este doar o descriere a modului de a avea un certificat Let's Encrypt pe USG. Dacă ceva este în neregulă cu Raspberry Pi, vă rugăm să înțelegeți că nu putem oferi suport pentru probleme legate de Pi!

Comentarii
0 comentariiVă rugăm să vă autentificați pentru a lăsa un comentariu.