W tym artykule bazy wiedzy chciałbym pokazać, jak można użyć Raspberry Pi, aby zainstalować certyfikat Let’s Encrypt na Twoim USG.
Wprowadzenie
Użyjemy serwera Apache oraz dodatku Let’s Encrypt dla Apache działającego na Raspberry Pi, aby pobrać certyfikat dla konkretnej nazwy domeny. Będziemy również używać Pi do aktualizacji tego certyfikatu.
Wyeksportujemy certyfikat z Pi i zaimportujemy go do USG.
Do czego służy certyfikat?
Dzięki certyfikatowi pozbędziesz się ostrzeżeń bezpieczeństwa w przeglądarce, na przykład dla HotSpot lub SSL VPN.
Wymagania
- Potrzebujesz nazwy domeny (DN) (np. hotspot.hotel-mayer.de)
- Jeśli nie masz statycznego adresu IP, musisz również zadbać, aby Twoja nazwa domeny była na bieżąco aktualizowana,
możesz użyć opcji DDNS w USG: Konfiguracja > Sieć > DDNS - Jeśli używasz USG w scenariuszu podwójnego NAT, musisz upewnić się, że porty HTTP i HTTPS są przekierowane do USG
- Musisz znać prawidłowe użycie NAT
- Potrzebujesz Raspberry Pi oraz karty SD na system operacyjny
- Komputer z zainstalowanymi programami Tera Term lub Putty oraz WinSCP
- Musisz umieć korzystać z terminala SSH na USG
- USG musi mieć co najmniej wersję oprogramowania 4.30
1. Konfiguracja Pi i Apache
W tym scenariuszu potrzebujemy tylko systemu operacyjnego opartego na wierszu poleceń dla Pi (Raspbian Stretch Lite)
pobierz go ze strony Raspberry Pi i zainstaluj zgodnie z dokumentacją.
https://www.raspberrypi.org/downloads/raspbian/
https://www.raspberrypi.org/documentation/installation/installing-images/README.md
1.1 Włączenie SSH i zmiana hasła
Teraz musisz włączyć SSH. W tym celu włóż kartę SD do komputera i umieść pusty plik o nazwie „SSH” w głównym katalogu karty SD.
Po zakończeniu instalacji podłącz Pi do sieci, uruchom go i sprawdź, czy możesz połączyć się przez SSH (np. za pomocą Putty lub Tera Term)
User: pi
Password: raspberryZalecenie 1: zmień hasło zgodnie z opisem tutaj:
https://www.raspberrypi.org/documentation/configuration/raspi-config.md
Zalecenie 2: Upewnij się, że Pi zawsze otrzymuje ten sam adres IP
1.2 Aktualizacja Pi i instalacja serwera Apache
Teraz możemy sprawdzić i zainstalować aktualizacje
sudo apt update && sudo apt upgrade --yesPo zakończeniu instalacji możemy zainstalować serwer Apache
sudo apt install apache2 --yesPo zakończeniu instalacji powinieneś móc zobaczyć domyślną stronę Apache, wpisując adres IP Raspberry Pi w przeglądarce.
Czas teraz zrestartować Pi:
shutdown -rW międzyczasie ustawimy (tymczasowe) przekierowanie portów do Pi.
2. Przekierowanie portów
Aby mieć otwarte porty 80 i 443 do internetu. Poniżej znajdziesz kroki, jak to zrobić
2.1 Zmień port HTTPS USG na np. 8443
Teraz możesz uzyskać dostęp do USG pod adresem: https://192.168.1.1:8443
2.2 Skonfiguruj przekierowanie portów dla HTTP i HTTPS
Sprawdź, czy możesz uzyskać dostęp do testowej strony Pi z internetu
3. Utwórz i wyeksportuj certyfikat
Zanim uzyskamy certyfikat Let's Encrypt, musimy zainstalować dodatek Let’s Encrypt dla Apache. Pomoże on w certyfikacji Twojej nazwy domeny.
sudo apt install certbot python-certbot-apache --yes3.2 Generowanie pierwszego certyfikatu
Teraz wygenerujemy pierwszy certyfikat:
sudo certbot --apacheMusisz przejść przez formularz i odpowiednio go wypełnić. Zostaniesz zapytany, czy chcesz przekierować ruch trwale.
Certyfikat zostanie zamówiony i automatycznie zainstalowany na serwerze Apache.
3.3 Eksportowanie certyfikatu i pobieranie certyfikatu
Teraz możesz wyeksportować certyfikat z oznaczeniem czasowym.
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.pemMusisz wprowadzić hasło. Upewnij się, że je zapamiętasz, ponieważ będzie potrzebne również przy imporcie do USG.
Aby pobrać certyfikat z Pi, musimy zmienić prawa dostępu do pliku myusg_[date].p12.
sudo chmod 777 myusg[date].p12Teraz możesz pobrać plik za pomocą WinSCP z folderu /tmp.
4. Import certyfikatu do USG
4.1 Pobierz i zaimportuj certyfikaty root i pośrednie Let's Encrypt
Aby USG zaufało certyfikatowi, który wyeksportowaliśmy wcześniej, musimy zaimportować certyfikaty root i pośrednie od Let's Encrypt:
https://letsencrypt.org/certificates/
Upewnij się, że certyfikaty są zapisane jako pliki PEM (np. letsencryptauthorityx3.pem).
Na USG przejdź do Konfiguracja > Obiekty > Certyfikaty > Zaufane certyfikaty i zaimportuj certyfikaty root oraz pośrednie.
4.2 Importuj i aktywuj swój certyfikat
Na USG przejdź do Konfiguracja > Obiekty > Certyfikaty > Moje certyfikaty i zaimportuj certyfikat (musisz też podać hasło)
Przejdź do Konfiguracja > System > WWW, gdzie pod „Certyfikat serwera” możesz teraz wybrać zaimportowany certyfikat.
5. Prawidłowa konfiguracja przekierowania HTTP na HTTPS
5.1 Dezaktywuj NAT dla Pi
Aby porty 80 i 443 były ponownie dostępne dla USG, musisz dezaktywować NAT dla Pi. Przejdź do Konfiguracja > Sieć > NAT i znajdź oraz dezaktywuj reguły odpowiedzialne za NAT. Nie usuwaj reguł, ponieważ będziesz ich później potrzebować.
5.2 Przywróć port HTTPS USG do 443 i ustaw przekierowanie HTTP na HTTPS
Przejdź do Konfiguracja > System > WWW i ustaw port HTTPS z powrotem na 443. Upewnij się, że przekierowanie HTTP jest włączone.
5.3 Usuń adres IP
Teraz USG będzie używać zaimportowanego certyfikatu. Pozostaje „problem”, że USG przekierowuje HTTP na HTTPS w ten sposób:
https://192.168.1.1/redirect.cgi?arip=[your_dyndns]&original_url=http://[your_dyndns]/
To oczywiście spowoduje problem z certyfikatem. Aby całkowicie pozbyć się tego komunikatu, otwórz sesję SSH do swojego USG i wpisz następujące polecenia:
Router> configure terminal
Router(config)# web-auth redirect-fqdn [your_domainname]
Router(config)# write
Router(config)# exit
Router> writeTeraz przekierowanie będzie wyglądać tak:
https://[your_domain]/redirect.cgi?arip=[your_domain]&original_url=http://[your_domain]/
Gratulacje, masz teraz działający certyfikat Let's Encrypt na swoim USG.
Odnawianie certyfikatu
Certyfikaty Let's Encrypt są ważne przez 90 dni. Oznacza to, że certyfikat trzeba odnawiać co trzy miesiące.
1. Ponownie otwórz porty HTTP i HTTPS do Pi
a) zmień port HTTPS USG ponownie (punkt 2.1)
b) reaktywuj NAT dla HTTP/HTTPS dla Pi (punkt 2.2)
2. Połącz się przez SSH z Pi i odnow certyfikat
Otwórz sesję SSH do Pi i wpisz polecenie
sudo certbot renewTo odnowi certyfikat na kolejne 90 dni
3. Eksportuj i zaimportuj certyfikat
Teraz wykonaj kroki z punktu 3.3
4. Zaktualizuj certyfikat na USG
Kontynuuj z krokiem 4.2
5. Przywróć porty
Wykonaj kroki z punktów 5.1 i 5.2
Gratulacje, odnowiłeś certyfikat Let's Encrypt na swoim USG.
Zastrzeżenie: Prosimy zrozumieć, że jest to jedynie opis, jak mieć certyfikat Let's Encrypt na USG. Jeśli coś będzie nie tak z Raspberry Pi, prosimy zrozumieć, że nie możemy udzielić wsparcia w sprawach dotyczących Pi!

Komentarze
Komentarze: 0Zaloguj się, aby dodać komentarz.