Archiv der Kategorie: IT

Eigenes Zertifikat inkl. RootCA

Bestimmt kennt ihr das … ihr setzt eine eigene, lokale Nextcloud auf (z.B. auf einem Raspi mit NextCloudPi), funktioniert alles wunderbar. Aber in der URL meckert Chrome, Vivaldi oder Firefox, dass das https-Zertifikat nicht gültig ist.

Die Lösung: wir erstellen unsere eigene RootCA und ein Zertifikat für unseren raspi.

Hier eine hoffentlich Schritt-für-Schritt-Anleitung:

Vorbereiten – ein Linux

Wir brauchen ein Linux-System für openssl. Ich habe Windows10 und mache es mir daher einfach … WSL (Windows Subsystem für Linux) installiert und dann Ubuntu darauf laufen lassen. Ein Linux innerhalb von Windows, läuft wunderbar.

Falls ihr das auch wollt:

  1. WSL2 für Windows installieren
  2. Ubuntu 20.04 installieren aus dem Windows Shop

Zertifikate erzeugen

Zuerst benötigen benötigen wir einen privaten Schlüssel für unserer rootCA (heißt bei mir haschickCA). Also einfach eingeben:

openssl genrsa -aes256 -out haschickCA.key 4096

Dabei wird ein Passwort abgefragt. Dieses (wie auch die haschickCA.key) unbedingt geheim halten. Am besten in eurem Passwort-Manager (bspw. KeePass) speichern.

Dann benötigen wir das Root-Zertifikat (was wir in Windows, im Android, … installieren werden):

openssl req -x509 -new -nodes -extensions v3_ca -key haschickCA.key -sha256 -days 2136 -out haschickCA.crt

Jetzt haben wir unser Root-Zertifikat (in diesem Fall die Datei haschickCA.crt).

Nun weiter im Text mit dem eigentlichen Zertifikat für unseren raspi.

Die Logik ist fast analog:

  1. privaten Schlüssel erzeugen, aber diesmal ohne Passwort
  2. Zertifikatsanfrage erzeugen, von der CA signieren lassen -> das Ergebnis ist unser SSL-Zertifikat

Für Schritt 1 (privaten Schlüssel ohne Passwort erzeugen)

openssl genrsa -out raspi.key 4096

Für Schritt 2:

Zertifikatsanforderung (CSR – Certificate Signing Request) erzeugen:

openssl req -new -sha256 \
    -key raspi.key \
    -subj "/C=DE/ST=SN/O=Frank Haschick/OU=raspi/CN=raspi" \
    -reqexts SAN \
    -config <(cat /etc/ssl/openssl.cnf <(printf "\n[SAN]\nsubjectAltName=DNS:raspi")) \
    -out raspi.csr

CSR signieren und damit Zertifikat anlegen

openssl x509 -req -extfile <(printf "subjectAltName=DNS:raspi\r\nextendedKeyUsage=serverAuth") -days 825 -in raspi.csr -CA haschickCA.crt -CAkey haschickCA.key -CAcreateserial -out raspi.crt -sha256

Die CSR-Datei benötigt man nicht mehr, die kann man wieder löschen

rm raspi.csr

Fertig, SSL-Zertifikat ist da 🙂

Falls ihr das Ubuntu auf dem WSL laufen habt (wie oben geschrieben), könnt ihr einfach

explorer.exe .

eingeben, und der Windows-Explorer wird gestartet mit genau dem Verzeichnis wo ihr gerade drin gewesen seid, wo also eure Zertifkate liegen.

Alternativ kann man im Windows Explorer auch „\wsl$\“ eingeben und dann zu seiner Linux-Distribution und seinem Verzeichnis wechseln

Zertifikat in raspi / Nextcloud hinterlegen

Jetzt wo ihr euer Zertifikat habt, müsst ihr es auf dem raspi hinterlegen.

Ihr benötigt euer rootCA (haschickCA.crt bei mir), die raspi.crt und die raspi.key.

Die auf den raspi kopieren und dann per SSH auf den raspi einloggen.

RootCA hinterlegen

Ihr solltet die RootCA nicht nur im Windows hinterlegen (dort bitte „Vertrauenswürdige Stammzertifizierungsstellen“ als Speicher auswählen), sondern auch im raspi.
Dazu die RootCA an die richtige Stelle kopieren:

sudo cp haschickCA.crt /usr/share/ca-certificates/haschickCA.crt

Und dann die CA-Pakete neu einlesen:

sudo dpkg-reconfigure ca-certificates

Dort dann das Zertifikat mit Leertaste auswählen und mit ENTER bestätigen.

Zertifikat in Apache hinterlegen

Erstmal kopieren wir unsere raspi-Schlüssel und das Zertifikat an die richtige Stelle:

sudo cp raspi.crt /etc/ssl/certs/raspi.crt
sudo cp raspi.key /etc/ssl/private/raspi.key

Welche Zertifikate von Apache genutzt werden, steht in der nextcloud.conf … also passieren wir die an:

sudo vi /etc/apache2/sites-enabled/nextcloud.conf

Wer mit vi nicht so gut umgehen kann … „i“ drücken zum einfügen.

Dann die 2 Zeilen austauschen (bei mir Zeile 7 und 8):

    SSLCertificateFile      /etc/ssl/certs/raspi.crt
    SSLCertificateKeyFile /etc/ssl/private/raspi.key

Zum Speichern „Escape“ drücken, dann „:wq!“ (alles ohne die „).

Dann noch von Apache die Config neu einlesen lassen:

sudo systemctl reload apache2

Dann probiert es im Browser aus: https://raspi sollte keine Fehlermeldung mehr erzeugen.

Viel Erfolg!

Update 16.03.2021

Das oben beschriebene funktioniert mit Windows und Android, aber nicht mit iOS. Dort gibt es seit iOS 13 neue Regeln (825 Tage Gültigkeit und extendedKeyUsage ergänzt) -> geht jetzt auch auf iOS

Migration OwnCloud zu Nextcloud

Ab sofort läuft unter haschick.de keine OwnCloud, sondern eine Nextcloud. Installation hat reibungslos geklappt (einfach alle Dateien extrahieren, config.php reinkopieren, owncloud Ordner umbenennen, Nextcloud-Ordner in Owncloud umbenennen und das wars).
Schön 🙂

OpenELEC 6.0.3 und BluRay abspielen

OpenELEC läuft prinzipiell super und im HTPC ist auch ein BluRay-Laufwerk drin.
Normalerweise kann man BluRays auf Linux allerdings nicht abspielen (schönen Dank liebe Content-Anbieter …). Da man als ehrlicher Käufer der Dumme ist, könnte man es sich natürlich auch gleich illegal irgendwo runterladen.
Oder man verwendet MakeMKV.

Dazu sind offensichtlich in OpenELEC nur 3 Dinge notwendig
1. über das inoffizielle Repo „MakeMKV“ installieren
2. per SSH auf OpenELEC gehen und den aktuelle Beta-Key (der aktuelle liegt immer unter http://www.makemkv.com/forum2/viewtopic.php?f=5&t=1053) eintragen:
ins Verzeichnis wechseln (vom Storage Verzeichnis ~ aus):
cd .MakeMKV/

Dort mittels z.B. vi eine Datei Namens „settings.conf“ anlegen. Dazu einfach eingeben
vi settings.conf
Dort den aktuellen Key reinschreiben, und zwar so:
app_Key="T-s3Sxxxxxxxxxxx"
(Speichern mit Esc, dann eingeben „:wq!“; wenn ihr nicht im Schreibmodus seid, „i“ drücken)

Dann könnt ihr, wenn eine BluRay drin liegt, mittels
makemkvcon info dev:/dev/sr0
euch die Analyse von MakeMKV anschauen.

3. Damit Kodi auch die BluRay über MakeMKV abspielt, muss noch folgendes in die „~/.config/autostart.sh“ eingefügt werden (die Datei gibt es schon, könnt ihr euch mit „ls -la“ anzeigen lassen; Datei öffnen wieder mit vi autostart.sh und dann „i“ für den Insert-Modus drücken):
(von http://openelec.tv/forum/128-addons/77969-guide-playing-bluray-with-official-oe-build)
###### this is for blu ray via makemkv##################################

PROFILE_PATH=/etc/profile.d
NEW_PROFILE_PATH=/var/tmp/profile.d

if [ -d $NEW_PROFILE_PATH ]; then
umount ${PROFILE_PATH}
rm -r $NEW_PROFILE_PATH;fi

cp -r ${PROFILE_PATH} /var/tmp

mount --bind ${NEW_PROFILE_PATH}/ ${PROFILE_PATH}/

KODI_PROFILE=$NEW_PROFILE_PATH/99-kodi.conf
MAKEMKV_PATH=/storage/.kodi/addons/lib.multimedia.makemkv

echo "LIBBDPLUS_PATH=$MAKEMKV_PATH/lib/libmmbd" >> $KODI_PROFILE
echo "LIBAACS_PATH=$MAKEMKV_PATH/lib/libmmbd" >> $KODI_PROFILE
echo "MAKEMKVCON=$MAKEMKV_PATH/bin/makemkvcon.bin" >> $KODI_PROFILE
#echo "MMBD_TRACE=1" >> $KODI_PROFILE

echo "export LIBBDPLUS_PATH" >> $KODI_PROFILE
echo "export LIBAACS_PATH" >> $KODI_PROFILE
echo "export MAKEMKVCON" >> $KODI_PROFILE
#echo "export MMBD_TRACE" >> $KODI_PROFILE

####################blu ray makemkv support done#########################

Ergebnis: damit wird z.B. MadMax bei mir einwandfrei in OpenELEC abgespielt 🙂

Antec Fusion iMon-LCD und OpenElec

So, der Wechsel von Windows MCE auf OpenElec(Kodi) ist vollzogen und prinzipiell ist es super 🙂

Gut, die Einrichtung war nicht ganz einfach. Z.B. hängt bei mir (noch) die Digital Devices CineS2 im HTPC. Über das offizielle Repository kann man TVHeadend installieren, aber das ist nur der Client. Der TVHeadend-Server wird nicht mit installiert, sondern den muss man über das inoffizielle Repository (ins offizielle Repository gehen und dort „Addon-Verzeichnis“  -> „OpenELEC Add-ons (unofficial)“ auswählen) nachinstallieren und konfigurieren. Man sitzt mal einen Abend dran, aber jetzt funktionieren auch beide Streams parallel und es sieht wirklich schick aus.

Was leider noch nicht geht: die Harmony Fernbedienung und das iMon LCD Display.

Nachdem ich das Addon „lcdpro“ installiert, unter Optionen -> OpenELEC -> Services -> Treiber die LCD-Treiberunterstützung aktiviert und als LCD-Treiber „imonlcd“ gewählt hatte, hat zumindest die Anzeige der Sendungen etc. gestimmt.

Allerdings hat sich das Display beim Runterfahren nicht ausgeschaltet, es stand dauerhaft „Thanks for using OpenELEC“ da.

Nach viel suchen habe ich es gefunden. Mit SSH verbinden (root/openelec) und dann erst (sofern nicht vorhanden) die Config kopieren:

cp /etc/LCDd.conf /storage/.config/LCDd.conf

und dann mit vi oder nano die /storage/.config/LCDd.conf bearbeiten. Dort drin dann setzen:

...
driver=imonlcd
...
# GoodBye message: each entry represents a display line; default: builtin
GoodBye=" "
GoodBye=" "
...
Soundgraph iMON LCD ## (ca. Zeile 682)
[imonlcd]
# Specify which iMon protocol should be used [legal: 0=15c2:ffdc device,
# 1=15c2:0038 device; default: 0]
Protocol=1
# Set the exit behavior [legal: 0=leave shutdown message, 1=show the big clock,
# 2=blank device; default: 1]
OnExit=2

(welches Device man hat, sieht man mit lsusb im Terminal)
Dann noch ein reboot und das wars

uberspace und qmail

Man kann bei uberspace seine Mailzustellung sehr fein mit .qmail-Dateien steuern (mehr dazu im Wiki bei uberspace).

Da ich für nahezu jede Webseite eine neue Email-Adresse verwende, könnte ich mir einfach einen Service anlegen, der dann ankommende Mails auf diese spezielle Adresse erstmal in den „bekannt“ Ordner (bei mir catchall genannt) legt.

Dazu reicht eine Anweisung für z.B. die Mail blablubb@haschick.de:

echo ./Maildir/.INBOX.catchall/ > ~/.qmail-blablubb

(legt die Datei .qmail-blablubb im Home-Verzeichnis an und schreibt rein, wohin die Mail verschoben werden soll)

Jetzt könnte man sich eine kleine Webseite bauen (natürlich mit Passwortschutz) wo ich dann nur noch ein Eingabefeld für den Teil vor dem @ habe… mal schauen was sich machen lässt. Unklar ist mir dabei, ob Skripte überhaupt außerhalb des /html-Verzeichnisses schreiben dürfen.

Also erstmal ein Skript bauen. Dafür in die Konsole gehen und schreiben:

vi addmail.sh

(Öffnet den Editor vim und legt die Datei addmail.sh an, wenn wir später speichern)

I drück für Insert-Modus

Reinkopieren:

#!/bin/bash

echo „./Maildir/.INBOX.catchall/“ > ~/.qmail-$1

Dann [Escape] drücken, um den Insert-Modus zu verlassen und mit :wq! speichern und raus.

Dann eingeben:

chmod +x addmail.sh

Um die Datei ausführbar zu machen.

Und schon kann man bequem, wenn man sich irgendwo mit spam123@haschick.de registriert hat, einfach in der Konsole eingeben:

./addmail.sh spam123

Und das wars. Damit wurde die .qmail-spam123 Datei angelegt und die Weiterleitung auf den IMAP-Ordner „catchall“ erfolgt dann, wenn das nächste mal eine solche Mail reinkommt.

Umzug auf uberspace

Ich habe dank einem Blogeintrag uberspace.de als Hoster entdeckt, und bin bisher begeistert was die Jungs und Mädels dort einem ermöglichen.
Vom alten Hoster (HostEurope – da gehen schonmal keine eigenen https-Zertifikate) zum neuen Hoster umgezogen mit OwnCloud und WordPress.

Der WordPress-Umzug ging mit BackWPup wirklich gut. Einfach die sql-Datei einspielen, Dateien aus dem Backup-Zip rüberkopieren (nur wp-content), dann noch sicherheitshalber eine Reinstallation durchgeführt und schon war alles beim alten, prima.

KK der Domain zu InternetWorx ist beauftragt. Ab dann ist haschick.de auch über https-erreichbar 🙂

Lunos TAC – Version 1.03

Seit bereits ca. 2 Monaten(?) ist die TAC-Version 1.03 draußen. Ein Changelog gibt’s leider nicht, da laut Lunos „nur noch geringer Änderungen durchgeführt werden“.
Hier trotzdem der Link zum direkten Download: http://www.lunos.de/media/medialibrary/USB_Firmware_Updater_1.03_1qzYwtF.zip/
Neue Sachen habe ich bisher nicht entdeckt. Die an Lunos gesendete Idee, doch ein einstellbares Offset für die Temperatur zu den Einstellungen hinzuzufügen, wurde leider nicht umgesetzt. Bei uns ist die Raumtemperatur des Lunos immer ca. 2 Grad zu hoch. Immerhin stimmt die Feuchtigkeitsanzeige mittlerweile ungefähr.

Lunos TAC

Lunos TAC

Zudem muss man nicht mehr das Lunos-Konfigurationstool runterladen, sondern man kann die Lunos-Konfiguration (bzw. den Konfigurations-Code) auch direkt auf der Webseite berechnen lassen: http://www.lunos.de/de/konfigurator/
Finde ich gut!

Laut Webseite kann man irgendwie auch Lüftungsdaten exportieren. Im Menüpunkt „Systemeinstellungen“ kann man den Modus von „Firmware upgrade“ auch auf „Datenübertragung“ umstellen. Leider wollte mir Lunos nicht verraten, wie man an die Daten kommt. Hat jemand eine Idee? Infos gerne in die Kommentare!

PGP Public Key

Im Rahmen des NSA-Skandals und des bekanntwerden des weltweiten Abhörens von Daten ist es ja durchaus wünschenswert, wenn alle etwas mehr verschlüsseln würden.

Daher ist ab sofort mein PGP Public Key auch auf haschick.de verfügbar. Den Key gibts hier oder rechts unter „sonstiges“. Schreibt mir also sehr gern auch verschlüsselte Mails. Wer Thunderbird als Client nutzt, hat es ja mit Enigma als Addon wirklich sehr einfach 🙂

Anmerkung: Ja, diese Seite ist noch nicht (bzw. nur über einen SSL-Proxy, in dem Fall https://ssl.webpack.de/haschick.de/) erreichbar. Hosteurope gestattet leider die Verwendung von eigenen Zertifikaten nicht, evtl. muss ich mich da doch mal nach einem neuen Hoster umsehen. Ich bin aber dran …

Klingel mit Kamera

Wir haben eine ganz normale Klingel bei uns. Aufgrund der breiten Fensterfront an der Tür (und neben der Tür) fällt ein Türspion leider aus.
Daher die elegante Lösung: Klingel mit Kamera, drin ein Tablet, was das Bild anzeigt, sobald jemand klingt. Und sonst wird das Wetter, Hausstatus etc. angezeigt.

Gibt’s von Siedle und von Gira (Achtung, Gira bringt Q3/Q4 2015 ein neues, besseres Kameramodul raus). Kostenpunkt zumindest bei Gira: rund 2.000EUR (Klingel mit Kamera, Videostation, IP-Gateway). Leider etwas über dem Budget.

Also selber gebaut. Hat den Vorteil, man kann auch gleich noch den Carport mit überwachen.

Erstmal wurde eine Trendnet TV-IP311PI (inkl. PoE-Injektor TP-Link TL-PoE150S, ca. 20EUR) besorgt. Für den Preis (ca. 170EUR) gibt es ein wirklich gutes Stück Hardware. Keine Plaste sondern Aluminium, schön klein und gute Bildqualität.
Achtung: die mitgelieferte Software ist Schrott. Glücklicherweise ist ein Webserver eingebaut. Also in der Fritzbox die passende IP rausgesucht und los gehts. Die initialen Anmeldedaten sind admin/admin. Dann Firmwareupgrade auf die aktuellste Version von Trendnet (aktuell die 5.1.8). Was diese leider nicht kann (da ich die Kamera nicht an der Decke, sondern an der Wand befestigen will): das Bild drehen. Also weitergesucht. Die Trendnet TV-IP311PI wird auch als HikVision DS-2CD2132-I verkauft. Und diese hat eine wesentlich bessere Firmware. Hier der Link zum Download http://www.hikvisioneurope.com/portal/index.php?dir=Product%20Firmware/Cameras/DS-2CD2xx2/
Und diese Firmware ist super 🙂 Drehen, Bereiche definieren, Bild anpassen etc. alles möglich. Spitze, so soll es sein.

Im Idealfall (da die Kamera ONVIF beherrscht) benötige ich auch kein Sensor an der Klingel. Die Kamera meldet sich, sobald sich etwas vor der Tür bewegt. Ich weiß also schon bevor jemand klingelt, das er da ist. Optimal, so soll es sein 🙂

Im nächsten Blog-Eintrag: die verwendete Software (sobald ich das Setup bei mir fertig habe).

[Update 23.04.2021]

Weil ich mal gesucht habe: die letzte, veröffentlichte Firmware ist V5.4.41 und ist jetzt hier verfügbar:

http://www.hikvisioneurope.com/portal/?dir=portal/Technical%20Materials/00%20%20Network%20Camera/00%20%20Product%20Firmware/R0%20platform%20(2xx2)/V5.4.41_Build170312(Released)

[Update 12.12.2023]

Aktuellste Firmware (V.5.4.8) jetzt hier: https://www.hikvisioneurope.com/eu/portal/?dir=portal/Technical%20Materials/00%20%20Network%20Camera/00%20%20Product%20Firmware/R0%20Platform/R0%20platform%20%282xx2%29/V5.4.800%20build210813