Aktuelles
Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben

Oscam mit SSL letsencrypt Zertifikat

Phantom

Administrator
Teammitglied
Registriert
5. Juli 2007
Beiträge
25.432
Lösungen
5
Reaktionspunkte
27.200
Punkte
1.103
Ort
Digital Eliteboard
Ich habe heute mal etwas gespielt und für meine Oscsm ein letsencrypt Zertifikat erstellt. Es nervte mich, das ständig vom Browser gesagt wurde mein Oscam sei nicht vertrauenswürdig :D

Zu meiner Konstellation
web Server mit Ubuntu 14.04.5 LTS
OScam Version 11391

Zunächst aktualisieren wir das System und installieren git wie auch apache, apache ist nötig damit das Zertifikat erstellt werden kann. Bei IPC sollte Apache nicht nötig sein.
Code:
sudo apt-get update && sudo apt-get install git apache2


Dann laden wir letsencrypt und erstellen das Verzeichnis /opt/letsencrypt
Code:
 sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt


Nun wechseln wir in das neue Verzeichnis
Code:
 cd /opt/letsencrypt


Jetzt erstellen wir das Zertifikat
Code:
./letsencrypt-auto --apache -d meinedyndns.com

Es folgt folgene ausgabe
Rich (BBCode):
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Obtaining a new certificate
Performing the following challenges:
tls-sni-01 challenge for meinedyndns.com

We were unable to find a vhost with a ServerName or Address of meinedyndns.com.
Which virtual host would you like to choose?
(note: conf files with multiple vhosts are not yet supported)
-------------------------------------------------------------------------------
1: 000-default.conf               |                       |       | Enabled
2: default-ssl.conf               | Multiple Names        | HTTPS | Enabled
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Waiting for verification...
Cleaning up challenges

We were unable to find a vhost with a ServerName or Address of meinedyndns.com.
Which virtual host would you like to choose?
(note: conf files with multiple vhosts are not yet supported)
-------------------------------------------------------------------------------
1: 000-default.conf               |                       |       | Enabled
2: default-ssl.conf               | Multiple Names        | HTTPS | Enabled
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Deploying Certificate for meinedyndns.com to VirtualHost /etc/apache2/sites-available/default-ssl.conf

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Created redirect file: le-redirect-meinedyndns.com.conf
Rollback checkpoint is empty (no changes made?)

-------------------------------------------------------------------------------
Congratulations! You have successfully enabled https://meinedyndns.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=meinedyndns.com
-------------------------------------------------------------------------------

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/meinedyndns.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/meinedyndns.com/privkey.pem
   Your cert will expire on 2017-12-04. To obtain a new or tweaked
   version of this certificate in the future, simply run
   letsencrypt-auto again with the "certonly" option. To
   non-interactively renew *all* of your certificates, run
   "letsencrypt-auto renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Das war es schon fast. lege in dein oscam Verzeichnis eine Datei Namens oscam.pem an.

Öffne jetzt unter /etc/letsencrypt/live/meinedyndns.com zuerst die privkey.pem und kopiere den Inhalt in die oscam.pem Jetzt öffne die cert.pem und kopiere den Inhalt auch in die oscam.pem unter den privkey und speichert diese ab.


In eurer oscam.config setzt jetzt ein + vor dem port
Code:
httpport                      = +12345


Am ende könnte der Webinterface abschnitt so aussehen
Code:
[webif]
httpport                      = +12345
httpuser                      = user
httppwd                       = passwd
httphelplang                  = de
httplocale                    = de_DE.UTF-8
http_prepend_embedded_css     = 1
httppollrefresh               = 0
httpshowpicons                = 1
httppiconsize                 = 50
httpshowmeminfo               = 1
httpshowuserinfo              = 1
httpshowcacheexinfo           = 1
httpshowecminfo               = 1
httpshowloadinfo              = 1
httpallowed                   = 0.0.0.0-255.255.255.255,127.0.0.1,79.141.173.124,192.168.0.0-192.168.255.255,10.0.0.0-10.255.255.255,172.16.0.0-172.31.255.255,91.18.82.100
httpdyndns                    = meinedyndns
hideclient_to                 = 5
http_status_log               = 1

Macht jetzt ein neustart und Ihr habt ein grünes schloss neben der URL

Du musst Regestriert sein, um das angehängte Bild zusehen.


Mit dem Zertifikat funktioniert auch das iOS oscam Mgr wieder nachdem SSL aktiv ist.
 

Anhänge

Du musst angemeldet sein, um die Anhangsliste zu sehen.
Für IPC hab ich das Ganze mal als Script zusammengefasst. Bitte testen
Code:
#!/bin/bash
#Adresse ermitteln
TITLE="Wie lautet die DynDNS Adresse für die das Zertifikat erstellt werden soll?"
BACKTITLE="Adressauswahl"
INPUTBOX="Adresse eingeben (z.B. dyn.dyndns.org):"
OUTPUT=/tmp/.dyndnscert

#IPC-Variablen einlesen:
. /var/emu/script/functions.sh

function dyndns () {
        dialog --title "$TITLE" \
        --backtitle "$BACKTITLE" \
        --inputbox "$INPUTBOX" 8 80 2>$OUTPUT
        clear
        #Wert aus Datei lesen
        RETURN=$(<$OUTPUT)
        #Datei löschen
        rm $OUTPUT
}

#Prüfen ob git installiert ist
if dpkg -l | grep -q git; then
        echo "installiert"
else
        echo "Git nicht installiert. Wird nachinstalliert..."
        sleep 3
        apt-get update >/dev/nul && apt-get install git >/dev/nul
fi

#letsencrypt-Git herunterladen
if [ ! -d "/opt/letsencrypt11" ]; then
    git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt11
fi

#Diaolog aufrufen:
dyndns

#Zertiifikat erstellen:
cd /opt/letsencrypt11
./letsencrypt-auto --apache -d $RETURN --register-unsafely-without-email

#oscam.pem zusammensetzen:
cp /etc/letsencrypt/live/$RETURN/privkey.pem $CAMCONFIGS/oscam.pem

certpem=$(cat /etc/letsencrypt/live/$RETURN/cert.pem)
echo "$certpem" >> $CAMCONFIGS/oscam.pem
 
Alle drei Monate muss es aktualisiert werden. Ich schau mal die tage wie man es per Cron einrichten kann.

Code:
1 0 * * 1 letsencrypt-auto renew
wäre für Jeden Montag um 00:01.
Code:
1 0 1 */3 * letsencrypt-auto renew
wäre für den ersten Tag jedes dritten Monats um 00:01.

(Natürlich muss man dann noch OSCAM neu starten)
 
Zuletzt bearbeitet:
Das heißt man muss gar nicht wieder die Prozedur wie oben beschrieben vornehmen, also
./letsencrypt-auto --apache -d meinedyndns.com usw. sondern der einfache Befehl zum erneuern des Zertifikats lautet letsencrypt renew?

Wenn man es also schafft, 4x im Jahr daran zu denken, z. B. weil man sowieso Oscam updated, oder den Raspberry selbst (z. B. sudo apt-get upgrade) den Befehl auszuführen, dann hat man ein dauerhaft gültiges Zertifikat ohne viel Aufwand?
 
Ja, jedoch sollte es "sudo letsencrypt-auto renew" sein (ich verwende andere Tools). Und du musst entweder in den Ordner der letsencrypt beinhaltet wechseln, den absoluten Pfad zur Binary verwenden oder den Ordner mit letsencrypt zu deiner PATH Variable hinzufügen.
 
Also cd /opt/letsencrypt && sudo letsencrypt-auto renew ... das kann man sich doch merken... :-) Was die Path-Variable ist weiß ich nämlich nicht bzw. wo welcher Eintrag gesetzt werden muss...
 
Ich bekomme folgende Meldung:

IMPORTANT NOTES:
- The following errors were reported by the server:

Domain: XXXXX.spdns.eu
Type: connection
Detail: Error getting validation data

To fix these errors, please make sure that your domain name was
entered correctly and the DNS A/AAAA record(s) for that domain
contain(s) the right IP address. Additionally, please check that
your computer has a publicly routable IP address and that no
firewalls are preventing the server from communicating with the
client. If you're using the webroot plugin, you should also verify
that you are serving files from the webroot path you provided.
 
Beim Erneuern der Zertifikate versucht er, wie beim Erstellen auch, den Server auf dem das letsencrypt Tool läuft zu verifizieren. Jedoch ist es ihm nicht möglich deinen Server zu verifizieren, wahrscheinlich weil er den Apache Server nicht erreicht. Ich selbst nutze Nginx und kann deswegen nichts zu Fehlerbehebung unter Apache sagen.
 
Port 443 wollte wohl freigegeben werden...

Das hat jetzt also geklappt... Nur sagt mir das Oscam Webif immer noch, dass die Webseite nicht sicher ist...
 
Zurück
Oben