From 519516d0d320ccd516cc3115884dc45bb1151c81 Mon Sep 17 00:00:00 2001 From: Hamatoma Date: Wed, 7 May 2025 08:27:17 +0200 Subject: [PATCH] added: 60_neue_webapplikation.md --- docu/60_neue_webapplikation.md | 60 ++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 docu/60_neue_webapplikation.md diff --git a/docu/60_neue_webapplikation.md b/docu/60_neue_webapplikation.md new file mode 100644 index 0000000..912b973 --- /dev/null +++ b/docu/60_neue_webapplikation.md @@ -0,0 +1,60 @@ +# Neue Webapplikation + +## Definition +Eine Webapplikation besteht aus +- einer Domäne (der Name der Webapplikation) +- einem Dateibaum (mit den zur Applikation gehörigen Dateien), normalerweise ein Unterverzeichnis unter /srv/www +- einer Datenbank mit Benutzer +- einer NGINX-Konfiguration +- eines Letsencrypt-Zertifikats (optional) + +## Einrichten einer Webapp +Es soll die Webapp mit der Domäne huber.de, der Datenbank wphuber und dem Benutzer wphuber eingerichtet werden: + +``` +DOMAIN=huber.de +DB_NAME=wphuber +PW=Geheim +# Erzeugen DB und User: +ansible-playbook playbooks/webapp_create \ + -e webapp_name=$DOMAIN \ + -e db_name=$DB_NAME \ + -e db_user=$DB_NAME \ + -e "db_password=$PW" +# Erzeugen des SSL-Zertifikats (Basis für Letsencrypt) +ansible-playbook playbooks/ssl_create_certificate.yaml -e domain=$DOMAIN +# Erzeugen der NGINX-Konfiguration (muss noch angepasst werden) +ansible-playbook playbooks/nginx_create_site.yaml -e domain=$DOMAIN +``` +Jetzt muss die NGINX-Datei (/etc/nginx/sites-available/huber.de) angepasst werden und unter templates.local/nginx/sites abgelegt werden. + +'''Wichtig:''' Das Zertifikat in der Konfiguration muss das SSL-Zertifikat sein, nicht das Letsencrypt-Zertifikat, +da dieses noch existiert: + ``` + ... + #ssl_certificate /etc/letsencrypt/live/huber.de/fullchain.pem; + #ssl_certificate_key /etc/letsencrypt/live/huber.de/privkey.pem; + ssl_certificate /etc/ssl/certs/huber.de.pem; + ssl_certificate_key /etc/ssl/private/huber.de.key; + ... +``` +Die NGINX-Konfiguration aktivieren: +``` +ansible-playbook playbooks/i_21_nginx_sites.yaml +``` +Jetzt kann das Letsencrypt-Zertifikat erstellt werden: +``` +ansible-playbook playbooks/lets_create.yaml -e domain=huber.de +``` + +### Fehlersuche +Wenn das Zertifikat nicht erstellt werden kann: Prüfen, ob der acme-Verzeichnis erreicht werden kann (auf der Workstation): +``` +curl http://$DOMAIN/.well-known/acme-challenge/hi2.txt +``` +Als Antwort muss "Hi 2!" erscheinen. + +Auf dem Server: +``` +certbot certonly --dry -a webroot --webroot-path=/srv/www/letsencrypt -d $DOMAIN --email web.hero@hamatoma.de +``` \ No newline at end of file -- 2.39.5