[LINUX] Proxy inverse d'Apache sur GCP vers Raspeye Apache local (Wake on LAN over NAT [3])

introduction

Ceci est une continuation de Dernière fois. C'est ce que je veux faire pour le moment.

network_detail.png

Cette fois, "Inverser le proxy d'Apache sur GCP vers Raspeye Apache local". Ce que je veux faire ici, c'est le lancer de GCP au Raspeye local qui est connecté au VPN.

Côté GCP

Installation d'Apache

Installez ce dont vous avez besoin. Line Bot doit prendre en charge HTTPS, installez donc Certbot également.

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

C'est la seule installation.

Ouverture de TCP443,40Port

Ouvrez les ports TCP443,40 de la même manière qu'auparavant.

port1

port2

Vérification

Entrez le domaine ou l'adresse IP globale que vous avez obtenue la dernière fois et vérifiez si Apache est en cours d'exécution. (À ce moment, si interdit apparaît, le port n'est probablement pas ouvert correctement.) http://yourdomain_or_ip

Si l'installation / le port est ouvert correctement, l'écran suivant s'affiche.

1.png

Réglage

Ensuite, définissez les paramètres suivants pour réduire les informations du serveur.

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

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


ServerTokens Prod
ServerSignature Off

Conversion SSL

Délivrance de certificat

Utilisez certbot pour émettre un certificat SSL. L'argument --dry-run est une commande que vous ne devriez pas essayer. Vous pouvez le faire sans --dry-run tout à coup, mais vous devriez le faire juste au cas où.

$ 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.

Si ça réussit, c'est la production.

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

En cas de succès sans erreur,

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

Vérifiez si le certificat est fait avec.

Activer le certificat

Activez le certificat et créez la page Web SSL.

cd /etc/apache2/sites-available/
sudo cp default-ssl.conf default-ssl.conf.bak #Sauvegarde juste au cas où
sudo vi default-ssl.conf

Définissez l'adresse e-mail et le chemin du certificat que vous avez créé précédemment.

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


#À propos de la troisième ligne
ServerAdimin {mail address(above address)}
#À propos de la 25e ligne
SSLEngine on
# 32,Environ 33ème ligne
SSLCertificateFile /etc/letsencrypt/live/{domai}/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/{domai}/privkey.pem
#À propos de la ligne 42
SSLCertificateChainFile /etc/letsencrypt/live/{domai}/chain.pem

Fermer le port 443 du serveur Softether

Je l'ai peut-être fait la dernière fois, mais pour le moment.

2.PNG

Activer les services et les systèmes

Reconfigurez les paramètres SSL que vous avez modifiés précédemment et le serveur Apache.

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

Maintenant https: // yourdomain_or_ip Si vous ouvrez (Remarque hhtp ** s **) et que cela ressemble à ce qui suit, vous avez SSL.

3.png

mise à jour certbot

S'il est laissé tel quel, le certificat deviendra invalide avec le temps (j'ai oublié la période. Veuillez le vérifier), donc je le renouvellerai régulièrement. Tout d'abord, vérifiez avec --dry-run pour voir si la mise à jour fonctionne.

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

Ce n'est pas grave si ça sort. Réglez avec crontab pour mettre à jour tous les mois.

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

Fermer le port 80 ou rediriger

Étant donné que la conversion SSL est terminée et que le port 80 n'est pas nécessaire, sélectionnez l'un ou l'autre. Je vais omettre de fermer le port et écrire la méthode de redirection.

Puisqu'il existe un fichier / etc / apache2 / sites-available / hogehoge.conf, écrivez ce qui suit (probablement le fichier 000-default.conf). Il est configuré pour ajouter de force https avec une expression régulière.

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]
        ...

Après l'édition, rechargez.

sudo a2enmod rewrite
sudo systemctl restart apache2

Côté tarte Razz

Les paramètres d'installation sont fondamentalement les mêmes, je les omettrai donc. Cependant, vous n'avez pas besoin de certbot car vous n'avez pas besoin de SSL!

Une fois l'installation terminée, démarrez Apache et vérifiez-le.

À des fins de test, modifiez / var / www / html / index.html pour le rendre plus facile à comprendre.

/var/www/html/index.html


This is vpn server for wake on lan!

Lancer avec un proxy inverse

GCP → Jetez Raspeye. Connectez-vous à GCP avec SSH. Tout d'abord, définissez divers paramètres pour le proxy inverse.

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

Ensuite, écrivez ce qui suit dans le fichier que vous avez modifié précédemment.

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/

Redémarrer.

sudo systemctl restart apache2

confirmer. https: // {domaine} Si la page est la suivante, c'est OK.

4.png

en conclusion

Pour le moment, c'est long, donc ça se termine ici.

Recommended Posts

Proxy inverse d'Apache sur GCP vers Raspeye Apache local (Wake on LAN over NAT [3])
Transformez Razzpie en routeur (Wake on LAN over NAT [4])
Obtenir un domaine à l'aide de GCP et MyDNS (Wake on LAN over NAT [1])
Proxy inverse d'Apache sur GCP vers Raspeye Apache local (Wake on LAN over NAT [3])
Transformez Razzpie en routeur (Wake on LAN over NAT [4])
Obtenir un domaine à l'aide de GCP et MyDNS (Wake on LAN over NAT [1])
Créer un script Python pour Wake on LAN (Wake on LAN over NAT [5])
Définir l'espace d'échange sur Ubuntu sur Raspberry Pi
Démarrez CentOS 8 à partir de Windows 10 avec Wake On LAN
Connectez-vous à MySQL avec Python sur Raspberry Pi
Créer un script Python pour Wake on LAN (Wake on LAN over NAT [5])
Comment installer NumPy sur Raspeye
Démarrez CentOS 8 à partir de Windows 10 avec Wake On LAN
Proxy inverse avec Apache 2.4 sur Ubuntu 19.10 Eoan Ermine
Connectez-vous à MySQL avec Python sur Raspberry Pi
Mémo de la migration de la base de données de Django de SQLite3 vers MySQL sur Docker sur Raspberry Pi 4B
De la configuration du Raspberry Pi à l'installation de l'environnement Python
Sortie sur "LED 7 segments" en utilisant python avec Raspberry Pi 3!
Je veux faire Wake On LAN de manière entièrement automatique