[LINUX] Reverse Proxy von Apache auf GCP zu lokalem Raspeye Apache (Wake on LAN über NAT [3])

Einführung

Dies ist eine Fortsetzung von Letztes Mal. Das möchte ich vorerst tun.

network_detail.png

Diesmal "Proxy von Apache auf GCP auf lokalen Raspeye Apache umkehren". Was ich hier tun möchte, ist, es von GCP auf das lokale Raspeye zu werfen, das mit VPN verbunden ist.

GCP-Seite

Apache-Installation

Installieren Sie, was Sie brauchen. Line Bot muss HTTPS unterstützen, installieren Sie also auch Certbot.

sudo apt update
sudo apt-get install apache2
sudo apt install certbot # For HTTPS

Dies ist die einzige Installation.

Öffnen von TCP443,40Port

Öffnen Sie die TCP443,40-Ports auf die gleiche Weise wie zuvor.

port1

port2

Bestätigung

Geben Sie die Domain oder globale IP-Adresse ein, die Sie zuletzt erhalten haben, und überprüfen Sie, ob Apache ausgeführt wird. (Wenn zu diesem Zeitpunkt ein Verbot angezeigt wird, wird der Port wahrscheinlich nicht richtig geöffnet.) http://yourdomain_or_ip

Wenn die Installation / der Port korrekt geöffnet ist, wird der folgende Bildschirm angezeigt.

1.png

Aufbau

Nehmen Sie als Nächstes die folgenden Einstellungen vor, um die Serverinformationen zu minimieren.

sudo vi /etc/apache2/conf-available/security.conf

/etc/apache2/conf-available/security.conf


ServerTokens Prod
ServerSignature Off

SSL-Konvertierung

Zertifikatsausstellung

Verwenden Sie "certbot", um ein SSL-Zertifikat auszustellen. Das Argument "--dry-run" ist ein Befehl, den Sie nicht versuchen sollten. Sie können es ohne "--dry-run" plötzlich tun, aber Sie sollten es nur für den Fall tun.

$ sudo certbot certonly --webroot -w /var/www/html -d {domain} --email {mail address} --agree-tos -n --dry-run

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer None
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for {domain}
Using the webroot path /var/www/html for all unmatched domains.
Waiting for verification...
Cleaning up challenges

IMPORTANT NOTES:
 - The dry run was successful.

Wenn es gelingt, ist es die Produktion.

sudo certbot certonly --webroot -w /var/www/html -d {domain} --email {mail address} --agree-tos -n

Wenn ohne Fehler erfolgreich,

sudo ls /etc/letsencrypt/live/{domain}/
# >> README  cert.pem  chain.pem  fullchain.pem  privkey.pem # -> OK

Überprüfen Sie, ob das Zertifikat mit erstellt wurde.

Zertifikat aktivieren

Aktivieren Sie das Zertifikat und machen Sie die Webseite SSL.

cd /etc/apache2/sites-available/
sudo cp default-ssl.conf default-ssl.conf.bak #Backup nur für den Fall
sudo vi default-ssl.conf

Legen Sie die E-Mail-Adresse und den Pfad des zuvor erstellten Zertifikats fest.

/etc/apache2/sites-available/default-ssl.conf


#Über die dritte Zeile
ServerAdimin {mail address(above address)}
#Über die 25. Zeile
SSLEngine on
# 32,Über die 33. Zeile
SSLCertificateFile /etc/letsencrypt/live/{domai}/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/{domai}/privkey.pem
#Über Zeile 42
SSLCertificateChainFile /etc/letsencrypt/live/{domai}/chain.pem

Schließen Sie den Softether-Server-Port 443

Ich habe es vielleicht das letzte Mal getan, aber vorerst.

2.PNG

Dienste und Systeme aktivieren

Konfigurieren Sie die zuvor bearbeiteten SSL-Einstellungen und den Apache-Server neu.

sudo service apache2 start 
sudo systemctl reload apache2
sudo a2ensite default-ssl
sudo a2enmod ssl 
sudo apachectl -t # >> Syntax OK
sudo systemctl restart apache2
sudo reboot

Jetzt https: // yourdomain_or_ip Wenn Sie öffnen (Hinweis hhtp ** s **) und es wie folgt aussieht, haben Sie SSL.

3.png

Certbot-Update

Wenn dies unverändert bleibt, wird das Zertifikat im Laufe der Zeit ungültig (ich habe den Zeitraum vergessen. Bitte überprüfen Sie es), sodass ich es regelmäßig erneuere. Überprüfen Sie zunächst mit "--dry-run", ob das Update funktioniert.

$ sudo certbot renew --dry-run
- - - - - - - - - - - - - - - - - 
- - - - - - - - - - - - - - - - - - - - - - - -
new certificate deployed without reload, fullchain is
/etc/letsencrypt/live/{domain}/fullchain.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Es ist in Ordnung, wenn es herauskommt. Mit crontab einstellen, um jeden Monat zu aktualisieren.

sudo crontab -e # or crontab -u root -e
# renew ssl certification
0 0 1 * * certbot renew

Port 80 schließen oder umleiten

Wählen Sie einen der beiden aus, da die SSL-Konvertierung abgeschlossen ist und Port 80 nicht erforderlich ist. Ich werde das Schließen des Ports unterlassen und die Umleitungsmethode schreiben.

Da es eine Datei "/ etc / apache2 / sites-available / hogehoge.conf" gibt, schreiben Sie Folgendes (wahrscheinlich die Datei "000-default.conf"). Es ist so eingestellt, dass https mit einem regulären Ausdruck zwangsweise hinzugefügt wird.

sudo vi /etc/apache2/sites-available/hogehoge.conf 

/etc/apache2/sites-available/hogehoge.conf


<VirtualHost *:80>
        RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
        ...

Nach dem Bearbeiten neu laden.

sudo a2enmod rewrite
sudo systemctl restart apache2

Razz Pie Seite

Die Installationseinstellungen sind im Grunde die gleichen, daher werde ich sie weglassen. Sie benötigen jedoch keinen "certbot", da Sie kein SSL benötigen!

Starten Sie nach Abschluss der Installation Apache und überprüfen Sie es.

Ändern Sie zu Testzwecken / var / www / html / index.html, um das Verständnis zu erleichtern.

/var/www/html/index.html


This is vpn server for wake on lan!

Mit einem Reverse Proxy werfen

GCP → Raspeye einwerfen. Stellen Sie mit SSH eine Verbindung zu GCP her. Stellen Sie zunächst verschiedene Einstellungen für den Reverse-Proxy ein.

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer
sudo a2enmod lbmethod_byrequests
sudo systemctl restart apache2

Schreiben Sie dann Folgendes in die zuvor bearbeitete Datei.

sudo vi /etc/apache2/sites-available/default-ssl.conf

/etc/apache2/sites-available/default-ssl.conf


ProxyPreserveHost On
ProxyPass / http://{raspi's local IP}:80/
ProxyPassReverse / http://{raspi's local IP}:80/

Neustart.

sudo systemctl restart apache2

bestätigen. https: // {domain} Wenn die Seite wie folgt ist, ist sie in Ordnung.

4.png

abschließend

Vorerst ist es lang, also endet es hier.

Recommended Posts

Reverse Proxy von Apache auf GCP zu lokalem Raspeye Apache (Wake on LAN über NAT [3])
Verwandle Razzpie in einen Router (Wake on LAN over NAT [4])
Erhalten Sie eine Domain mit GCP und MyDNS (Wake on LAN over NAT [1])
Reverse Proxy von Apache auf GCP zu lokalem Raspeye Apache (Wake on LAN über NAT [3])
Verwandle Razzpie in einen Router (Wake on LAN over NAT [4])
Erhalten Sie eine Domain mit GCP und MyDNS (Wake on LAN over NAT [1])
Erstellen Sie ein Python-Skript für Wake on LAN (Wake on LAN über NAT [5])
Stellen Sie den Swap Space unter Ubuntu auf Raspberry Pi ein
Starten Sie CentOS 8 von Windows 10 mit Wake On LAN
Stellen Sie mit Python auf Raspberry Pi eine Verbindung zu MySQL her
Erstellen Sie ein Python-Skript für Wake on LAN (Wake on LAN über NAT [5])
So installieren Sie NumPy auf Raspeye
Starten Sie CentOS 8 von Windows 10 mit Wake On LAN
Reverse Proxy mit Apache 2.4 unter Ubuntu 19.10 Eoan Ermine
Stellen Sie mit Python auf Raspberry Pi eine Verbindung zu MySQL her
Memo zur Migration von Djangos DB von SQLite3 nach MySQL auf Docker auf Raspberry Pi 4B
Vom Einrichten des Raspberry Pi bis zur Installation der Python-Umgebung
Ausgabe auf "7 Segment LED" mit Python mit Raspberry Pi 3!
Ich möchte Wake On LAN vollautomatisch ausführen