UniFi-Controller mit Let’s Encrypt-Zertifikat

Um den Unifi-Controller ein Let’s Encrypt-Zertifikat zu importieren ist relativ simpel.

Dazu benötigen wir die vorhandenen Zertifikate und das unifi_ssl_import.sh-Script das es unter https://github.com/stevejenkins/unifi-linux-utils gibt 🙂

Jetzt muss man es nur anpassen:

UNIFI_HOSTNAME = die Domain.

Wen man Debian/Ubuntu nutzt kann man jetzt den ganzen Fedora/Redhat/Centos-Teil löschen und die UNIFI_DIR, JAVA_DIR und KEYSTORE Zeilen für Debian/Ubuntu auskommentieren.

Dann LE_MODE auf yes setzten

 PRIV_KEYSIGNED_CRT und CHAIN_FILE noch auskommentieren

# CONFIGURATION OPTIONS
UNIFI_HOSTNAME=unifi.friedlandreas.net
UNIFI_SERVICE=unifi

# Uncomment following three lines for Fedora/RedHat/CentOS
#UNIFI_DIR=/opt/UniFi
#JAVA_DIR=${UNIFI_DIR}
#KEYSTORE=${UNIFI_DIR}/data/keystore

# Uncomment following three lines for Debian/Ubuntu
UNIFI_DIR=/var/lib/unifi
JAVA_DIR=/usr/lib/unifi
KEYSTORE=${UNIFI_DIR}/keystore

# Uncomment following three lines for CloudKey
#UNIFI_DIR=/var/lib/unifi
#JAVA_DIR=/usr/lib/unifi
#KEYSTORE=${JAVA_DIR}/data/keystore

# FOR LET'S ENCRYPT SSL CERTIFICATES ONLY
# Generate your Let's Encrtypt key & cert with certbot before running this script
LE_MODE=yes
LE_LIVE_DIR=/etc/letsencrypt/live

# THE FOLLOWING OPTIONS NOT REQUIRED IF LE_MODE IS ENABLED
#PRIV_KEY=/etc/letsencrypt/live/unifi.friedlandreas.net//hostname.example.com.key
#SIGNED_CRT=/etc/ssl/certs/hostname.example.com.crt
#CHAIN_FILE=/etc/ssl/certs/startssl-chain.crt

# CONFIGURATION OPTIONS YOU PROBABLY SHOULDN'T CHANGE
ALIAS=unifi
PASSWORD=aircontrolenterprise

Jetzt noch das Script ausführbar machen

chmod a+x unifi_ssl_import.sh

und jetzt noch für das Script einen Cronjob erstellen:

sudo crontab -e

und dort z.B. die Zeile

0 0 * * 0 /pfad/zum/script/unifi_ssl_import.sh >/dev/null 2>&1

hinzufügen.

Jetzt wird jeden Tag gecheckt ob ein neues Zertifikat vorhanden ist und falls vorhanden wird das Zertifikat in den UniFi-Controller importiert 🙂

Quelle: https://blog.khophi.co/

Vim: Suchen und Ersetzen

Ich arbeite sehr viel im Vim – auf der Konsole ist das mein Standardeditor.

Was ich sehr oft brauche – und immer mal wieder nachschauen muss ich das Suchen und Ersetzen -> deshalb schreib ich mir das jetzt mal hier auf 🙂

Einmalig ersetzen:
:%s/[Suchstring]/[Ersetzungsstring]/

Alle Vorkommen ersetzen:
:%s/[Suchstring]/[Ersetzungsstring]/g

Alle Vorkommen ersetzen – mit Parameter i case-insensitive (Groß- und Kleinschreibung egal):
:%s/[Suchstring]/[Ersetzungsstring]/gi

Alle Vorkommen ersetzen – mit Parameter i case-insensitive (Groß- und Kleinschreibung egal) und Parameter c für Nachfrage ob ersetzt werden soll:
:%s/[Suchstring]/[Ersetzungsstring]/gic

Beispiel:

:%s/AlterServerName/NeuerServerName/gi

Hier wird der String AlterServerName durch den String NeuerServerName ersetzt – egal wie AlterServerName geschrieben ist -> also auch alterservername, ALTERSERVERNAME, etc

Achtung: Da der String hier als Regulärer Ausdruck interpretiert wird, müssen reservierte Zeichen, z.B. „.“, escaped werden, indem man ihm ein „\“ voranstellt.

Quelle: www.it-blog.net

Nextcloud: HTTP Error 500 nach Update

Ich hatte das Problem das nach dem Update bzw. Upgrade von Nextcloud 16 auf Nextcloud 17 (über den Web-Updater) meine Nextcloud nicht mehr erreichbar war und

HTTP ERROR 500

ausgab.

Lösen konnte ich das Problem über die Shell (der Pfad ist euer Nextcloud-Verzeichnis):

cd /var/www/nextcloud

sudo -u www-data php occ upgrade

Danach lief wieder alles 🙂

Quelle: https://help.nextcloud.com/t/http-error-500-after-update-to-nc-13/27001/3

Debian 8 (Jessie): Update über apt schlägt fehl

Will man ein Debian 8 mit apt-get update oder apt update updaten und schlägt dies mit einer Meldung wie dieser fehl

Fehl http://ftp.debian.org jessie-backports/main amd64 Packages 404 Not Found [IP: 130.89.148.12 80] W: Fehlschlag beim Holen von http://ftp.debian.org/debian/dists/jessie-backports/main/binary-amd64/Packages 404 Not Found [IP: 130.89.148.12 80] E: Einige Indexdateien konnten nicht heruntergeladen werden. Sie wurden ignoriert oder alte an ihrer Stelle benutzt.

liegt das daran, dass Debian im März 2019 die Sourcen verschoben haben – und die alten in der sources.list nicht mehr funktionieren.

Man muss jetzt nur die sources.list Datei in /etc/apt/ auf die neuen Quellen ändern:

deb http://security.debian.org/ jessie/updates main
deb-src http://security.debian.org/ jessie/updates main

deb http://archive.debian.org/debian/ jessie-backports main
deb-src http://archive.debian.org/debian/ jessie-backports main

deb http://archive.debian.org/debian/ jessie main contrib non-free
deb-src http://archive.debian.org/debian/ jessie main contrib non-free

Und zusätzlich muss noch folgender Befehl auf der Shell ausführt werden:

echo "Acquire::Check-Valid-Until false;" | tee -a /etc/apt/apt.conf.d/10-nocheckvalid

Jetzt sollte einem gepflegten apt update && apt upgrade -y nichts mehr im Wege stehen 🙂

Quelle: www.kernelhost.de

Upload zu Nextcloud aus der Konsole via cURL

Um Daten von der Konsole aus zu einer Nextcloud hochzuladen braucht es nur cURL :

curl -X PUT „https://meine.nextcloud.net/remote.php/webdav/Ordner/Datei.txt“ –data-binary @“Datei.txt“ -u nextcloud-user

Um also z.B. die Datei Backup.tar.gz in den Ordner Backup des Users cloud hochzuladen wäre der Befehl also:

curl -X PUT „https://meine.nextcloud.net/remote.php/webdav/Backup/Backup.tar.gz“ –data-binary @“Backup.tar.gz“ -u cloud

Super easy und man muss die Konsole nicht verlassen 🙂

Nextcloud 15: occ-Befehle nach Upgrade

Mir wurde nach einem Upgrade von meiner Nextcloud 14 auf die aktuelle Version folgendes angezeigt:

Um die Datenbankoperationen mit occ auszuführen musste ich folgendes machen :

per SSH auf dem Server und in das Nextcloud-Verzeichnis (bei mir /var/www/html/nextcloud) wechseln

cd /var/www/html/nextcloud

Dann zuerst die Indizies erstellen

sudo -u www-data php occ db:add-missing-indices

Und anschliesend die Konvertierung auf big int durchführen

sudo -u www-data php occ db:convert-filecache-bigint

Danach war die Datenbank glücklich 🙂

Und man kann sich an die anderen Meldungen machen 😉

Nginx: upstream timed out (110: Connection timed out)

Ich hatte bei einem Nginx als ReverseProxy das Problem das dieser oft in Fehler upstream timed out (110: Connection timed out) lief und so die Seite nicht funktionierte – der User bekam dann eine 504 Fehlerseite.

Ich habe das mit dem hinzufügen der beiden Zeilen

proxy_http_version 1.1;
proxy_set_header Connection „“;

gefixt – danach lief alles ohne Probleme.

Quelle: stackoverflow