| 
					
				 | 
			
			
				@@ -9,79 +9,124 @@ toc: no 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 das Zertifikat für https://map-ng.ffdo.de/map/ ist abgelaufen, das für grafana.ffdo.de läuft in Kürze ab 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 das acmetool ist auf dem alten Debian nicht mehr supportet. Daher habe ich jetzt das acme.sh skript verwendet. Das hat quasi (fast) keine Abhänigkeiten.  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Erstmal acme.sh installieren (landet leider direkt in /root/.acme.sh/)   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  socat ist die einzige Abhänigkeit die wohl manches einfacher macht; daher wird das vorher installiert   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  apt-get install socat   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+socat ist die einzige Abhänigkeit die wohl manches einfacher macht; daher wird das vorher installiert   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    apt-get install socat   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Altlast besser weg gucken... 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Damit laden wir das install-script runter und führen es direkt mit root rechten aus 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  curl https://get.acme.sh | sh  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    curl https://get.acme.sh | sh  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Vorbereitungen für LEs Challenge 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  mkdir /var/www/letsencrypt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    mkdir /var/www/letsencrypt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 In allen vier virtuellen Hosts müssen wir das acmetool rauswerfen und acme.sh einfügen   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-Vorher zB.:   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-- location /.well-known/acme-challenge/ {   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-- include           proxy_params;   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-- proxy_pass        http://127.0.0.1:402;   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-- }    
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Vorher zB.:  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    location /.well-known/acme-challenge/ {   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    include           proxy_params;   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    proxy_pass        http://127.0.0.1:402;   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }    
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Nachher zB.:   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-- location /.well-known/acme-challenge {   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				--    root /var/www/letsencrypt;   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				--    try_files $uri $uri/ =404;   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-- }   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-nano /etc/nginx/sites-available/prometheus_unsecure.conf   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-nano /etc/nginx/sites-available/grafana_unsecure.conf   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-nano /etc/nginx/sites-available/wiki_unsecure.conf   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-nano /etc/nginx/sites-available/gogs_unsecure.conf   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    location /.well-known/acme-challenge {   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    root /var/www/letsencrypt;   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    try_files $uri $uri/ =404;   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Das in allen conf-Dateien: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    nano /etc/nginx/sites-available/prometheus_unsecure.conf   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    nano /etc/nginx/sites-available/grafana_unsecure.conf   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    nano /etc/nginx/sites-available/wiki_unsecure.conf   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    nano /etc/nginx/sites-available/gogs_unsecure.conf   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Dann einmal nginx neu starten damit die obigen Einstellungen aktiv werden 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 systemctl reload nginx 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Jetzt die Zertifkate abholen/generieren   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/root/.acme.sh/acme.sh --issue -d prometheus.ffdo.de -w /var/www/letsencrypt --server letsencrypt --reloadcmd "systemctl restart nginx.service"   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/root/.acme.sh/acme.sh --issue -d wiki.ffdo.de -w /var/www/letsencrypt --server letsencrypt --reloadcmd "systemctl restart nginx.service"   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/root/.acme.sh/acme.sh --issue -d git.ffdo.de -w /var/www/letsencrypt --server letsencrypt --reloadcmd "systemctl restart nginx.service"   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/root/.acme.sh/acme.sh --issue -d grafana.ffdo.de -d grafana.freifunk-dortmund.de -w /var/www/letsencrypt --server letsencrypt --reloadcmd "systemctl restart nginx.service"   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /root/.acme.sh/acme.sh --issue -d prometheus.ffdo.de -w /var/www/letsencrypt --server letsencrypt --reloadcmd "systemctl restart nginx.service"   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /root/.acme.sh/acme.sh --issue -d wiki.ffdo.de -w /var/www/letsencrypt --server letsencrypt --reloadcmd "systemctl restart nginx.service"   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /root/.acme.sh/acme.sh --issue -d git.ffdo.de -w /var/www/letsencrypt --server letsencrypt --reloadcmd "systemctl restart nginx.service"   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /root/.acme.sh/acme.sh --issue -d grafana.ffdo.de -d grafana.freifunk-dortmund.de -w /var/www/letsencrypt --server letsencrypt --reloadcmd "systemctl restart nginx.service"   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Jetzt in den HTTPS configs die neuen Zertifkatspfade eintragen 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Vorher zB.:   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   ssl_certificate /var/lib/acme/live/grafana.ffdo.de/fullchain;   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   ssl_certificate_key /var/lib/acme/live/grafana.ffdo.de/privkey;   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ssl_certificate /var/lib/acme/live/grafana.ffdo.de/fullchain;   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ssl_certificate_key /var/lib/acme/live/grafana.ffdo.de/privkey;   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Nachher zB.:   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   ssl_certificate /root/.acme.sh/grafana.ffdo.de/fullchain.cer;   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   ssl_certificate_key /root/.acme.sh/grafana.ffdo.de/grafana.ffdo.de.key;   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-nano /etc/nginx/sites-available/gogs.conf   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-nano /etc/nginx/sites-available/grafana.conf   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-nano /etc/nginx/sites-available/wiki.conf   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-nano /etc/nginx/sites-available/prometheus.conf   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ssl_certificate /root/.acme.sh/grafana.ffdo.de/fullchain.cer;   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ssl_certificate_key /root/.acme.sh/grafana.ffdo.de/grafana.ffdo.de.key;   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    nano /etc/nginx/sites-available/gogs.conf   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    nano /etc/nginx/sites-available/grafana.conf   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    nano /etc/nginx/sites-available/wiki.conf   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    nano /etc/nginx/sites-available/prometheus.conf   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 nginx neustarten   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-systemctl restart nginx 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    systemctl restart nginx 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Geht nicht! Warum?   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 journalctl -xn 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				--> Jul 13 16:36:46 services nginx[2264]:   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				--> nginx: [emerg] SSL_CTX_use_PrivateKey_file("/root/.acme.sh/git.ffdo.de/git.ffdo.de.key.")   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				--> failed (SSL: error:02001002:system library:fopen:No such file   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    -> Jul 13 16:36:46 services nginx[2264]:   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    -> nginx: [emerg] SSL_CTX_use_PrivateKey_file("/root/.acme.sh/git.ffdo.de/git.ffdo.de.key.")   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    -> failed (SSL: error:02001002:system library:fopen:No such file   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Man beachte den Dateinamen für den private key... da ist am Ende ein "." zuviel...   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Also Punkt rauswerfen:   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-nano gogs.conf   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    nano gogs.conf   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 nginx nochmal neustarten damit die Zertifikate geladen werden   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-systemctl restart nginx   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    systemctl restart nginx   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Automatischen renew einmal erzwungen laufen lassen (zum testen ob alles geht)   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/root/.acme.sh/acme.sh --cron --home /root/.acme.sh --renew-hook "systemctl reload nginx" --force   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /root/.acme.sh/acme.sh --cron --home /root/.acme.sh --renew-hook "systemctl reload nginx" --force   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Keine Fehler beim Testlauf, also noch Cronjob anlegen   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-crontab -e   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    crontab -e   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Feststellen, dass das install script schon ein entsprechenden eintrag gemacht hat   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				--> 23 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    -> 23 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+# 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Fertig.  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # Cajus 12.05.21 
			 |