You are here

October 2016

Automatically update TLSA records on new Letsencrypt Certs

I've been using DNSSEC for some quite time now and it is working quite well. When LetsEncrypt went public beta I jumped on the train and migrated many services to LE-based TLS. However there was still one small problem with LE certs: 

When there is a new cert, all of the old TLSA resource records are not valid anymore and might give problems to strict DNSSEC checking clients. It took some while until my pain was big enough to finally fix it by some scripts.

There are at least two scripts involved:

1) dnssec.sh
This script does all of my DNSSEC handling. You can just do a "dnssec.sh enable-dnssec domain.tld" and everything is configured so that you only need to copy the appropriate keys into the webinterface of your DNS registry.

host:~/bin# dnssec.sh
No parameter given.
Usage: dnsec.sh MODE DOMAIN

MODE can be one of the following:
enable-dnssec : perform all steps to enable DNSSEC for your domain
edit-zone     : safely edit your zone after enabling DNSSEC
create-dnskey : create new dnskey only
load-dnskey   : loads new dnskeys and signs the zone with them
show-ds       : shows DS records of zone
zoneadd-ds    : adds DS records to the zone file
show-dnskey   : extract DNSKEY record that needs to uploaded to your registrar
update-tlsa   : update TLSA records with new TLSA hash, needs old and new TLSA hashes as additional parameters

For updating zone-files just do a "dnssech.sh edit-zone domain.tld" to add new records and such and the script will take care e.g. of increasing the serial of the zone file. I find this very convenient, so I often use this script for non-DNSSEC-enabled domains as well.

However you can spot the command line option "update-tlsa". This option needs the old and the new TLSA hashes beside the domain.tld parameter. However, this option is used from the second script: 

2) check_tlsa.sh
This is a quite simple Bash script that parses the domains.txt from letsencrypt.sh script, looking up the old TLSA hash in the zone files (structured in TLD/domain.tld directories), compare the old with the new hash (by invoking tlsagen.sh) and if there is a difference in hashes, call dnssec.sh with the proper parameters: 

#!/bin/bash
set -e
LEPATH="/etc/letsencrypt.sh"
for i in `cat /etc/letsencrypt.sh/domains.txt | awk '{print $1}'` ; do
        domain=`echo $i | awk 'BEGIN {FS="."} ; {print $(NF-1)"."$NF}'`
        #echo -n "Domain: $domain"
        TLD=`echo $i | awk 'BEGIN {FS="."}; {print $NF}'`
        #echo ", TLD: $TLD"
        OLDTLSA=`grep -i "in.*tlsa" /etc/bind/${TLD}/${domain} | grep ${i} | head -n 1 | awk '{print $NF}'`
        if [ -n "${OLDTLSA}" ] ; then
                #echo "--> ${OLDTLSA}"
                # Usage: tlsagen.sh cert.pem host[:port] usage selector mtype
                NEWTLSA=`/path/to/tlsagen.sh $LEPATH/certs/${i}/fullchain.pem ${i} 3 1 1 | awk '{print $NF}'`
                #echo "==> $NEWTLSA"
                if [ "${OLDTLSA}" != "${NEWTLSA}" ] ; then
                        /path/to/dnssec.sh update-tlsa ${domain} ${OLDTLSA} ${NEWTLSA} > /dev/null
                        echo "TLSA RR update for ${i}"
                fi
        fi
done

So, quite simple and obviously a quick hack. For sure someone else can write a cleaner and more sophisticated implementation to do the same stuff, but at least it works for meTM. Use it on your own risk and do whatever you want with these scripts (licensed under public domain).

You can invoke check_tlsa.sh right after your crontab call for letsencrypt.sh. In a more sophisticated way it should be fairly easy to invoke these scripts from letsencrypt.sh post hooks as well.
Please find the files attached to this page (remove the .txt extension after saving, of course).

 

Kategorie: 
 
AttachmentSize
Plain text icon check_tlsa.sh.txt812 bytes
Plain text icon dnssec.sh.txt3.88 KB

Wird CETA durch die Wallonen gestoppt?

Letzte Woche hat das Bundesverfassungsgericht in Karlsruhe entschieden, keine einstweillige Verfügung gegen die vorübergehende Anwendung des Freihandelsabkommen mit Kanada (CETA) zu erlassen und damit den Weg für das Abkommen unter Auflagen freizumachen: 

Die Richter haben das Abkommen oder auch nur dessen geplante vorläufige Anwendung zwar nicht gestoppt, aber doch der Bundesregierung so klare und enge Vorgaben macht, dass die verfassungsrechtlich heikelsten Probleme ausgeräumt werden - und im Übrigen eine Hintertür bleibt, durch die die Bundesrepublik Ceta immer noch verlassen könnte, sollten die Richterinnen und Richter später - im sogenannten Hauptsacheverfahren - zum Ergebnis kommen, dass Ceta in einigen Punkten doch verfassungswidrig ist.

Die Auflagen auf den ersten Blick zwar durchaus streng, aber man muss schauen, was davon in der Wirklichkeit übrigbleibt. Etwa von der Auflage, daß Deutschland das Abkommen auch einseitig kündigen darf. Bisher war das auch bei anderen Freihandelsabkommen möglich, hatte aber dann zur Folge, daß Unternehmen noch bis zu 20 Jahren Ansprüche geltend machen können. Wenn dies im Nachgang auf bei CETA der Fall sein würde, kann von einer strengen Auflage eigentlich nicht die Rede sein. Also auch wenn das Bundesverfassungsgericht in dieser Eilentscheidung noch nicht über das Hauptsacheverfahren entschieden hat, sind die Weichen erst einmal für die vorläufige Anwendung gestellt.

Dabei scheint die Abwägung des Bundesverfassungsgerichts hinsichtlich der eventuellen Schäden durch eine einstweilige Verfügung zumindest für mich etwas fragwürdig zu sein: 

Ein - auch nur vorläufiges - Scheitern von CETA dürfte über eine Beeinträchtigung der Außenhandelsbeziehungen zwischen der Europäischen Union und Kanada hinaus weit reichende Auswirkungen auf die Verhandlung und den Abschluss künftiger Außenhandelsabkommen haben. Insofern erscheint es naheliegend, dass sich der Erlass einer einstweiligen Anordnung negativ auf die europäische Außenhandelspolitik und die internationale Stellung der Europäischen Union insgesamt auswirken würde. Die mit dem Erlass einer einstweiligen Anordnung bei späterer Erfolglosigkeit der Hauptsache verbundenen Nachteile könnten sich mit hoher Wahrscheinlichkeit als irreversibel erweisen. Die zu erwartende Einbuße an Verlässlichkeit sowohl der Bundesrepublik Deutschland - als Veranlasser einer derartigen Entwicklung - als auch der Europäischen Union insgesamt könnte sich dauerhaft negativ auf den Handlungs- und Entscheidungsspielraum aller europäischen Akteure bei der Gestaltung der globalen Handelsbeziehungen auswirken.

Da hat der Bundeswirtschaftsminister und CETA- und TTIP-Befürworter Sigmar Gabriel offensichtlich ganze Arbeit geleistet, denn aus meiner Sicht ist eine ernsthafte Beschädigung der EU durch ein Nicht-Zustandekommen des Freihandelsabkommens rein spekulativ. Um langfristig und dauerhaft Schaden zu verursachen, ist die EU international einfach zu wichtig. Natürlich werden die Beteiligten sagen, daß man so natürlich keine Verläßlichkeit bei Abkommen mit der EU hätte, aber das wird genau dieselben Beteiligten nicht davon abhalten, kurze Zeit nach einem etwaigen Scheitern von CETA mit neuen Verhandlungen zu beginnen, um genau das Gleiche in einem neuen Abkommen zu erreichen: den freien, ungehinderten Handel und Finanzfluß. Dazu sind die Begehrlichkeiten und die Gier auf beiden Seiten des Atlantiks einfach zu groß.

Daran dürfte auch nicht der letzte Stolperstein auf dem Weg zur geplanten Unterzeichnung am Donnerstag nächster Woche etwas ändern: 

Das wallonische Regionalparlament in Belgien muss der Föderalregierung Belgiens ihre Zustimmen zu diesem Abkommen geben. Tut die Regionalregierung dies nicht, darf die belgische Regierung dem CETA-Abkommen nicht zustimmen, was zur Folge haben dürfte, daß das Abkommen nicht zustande käme:

Die Zeit wird knapp: Am 27. Oktober soll Ceta beim EU-Kanada-Gipfel in Brüssel feierlich unterzeichnet werden. Sollte sich bis Anfang kommender Woche keine Lösung finden, so hieß es in Brüssel, würde die kanadische Regierung den Gipfel wohl absagen. Die Blamage der EU wäre komplett.

Auch hier wird wieder von eine Blamage für die EU geredet. Aus meiner Sicht ist es aber eher anders herum: derzeit leidet die EU unter einem Glaubwürdigkeitsproblem bei den Bürgern. Das hat unter anderem auch zum Brexit geführt. Seit Jahren warnen und protestieren Hunderttausende wenn nicht sogar Millionen EU-Bürger vor TTIP und CETA, aber grundlegend hat sich nichts an den Abkommen geändert, da sie immer noch im Geheimen unter Ausschluß der Öffentlichkeit verhandelt werden und die Vertragstexte und Nebenabsprachen nicht in Gänze veröffentlich sind. Allein schon wegen dieser Intransparenz sollten diese Abkommen abzulehnen sein. Trotz aller Kritik werden die Abkommen weiter vorangetrieben und lediglich kleine Pseudo-Zugeständnisse gemacht.

Scheitert das Abkommen, dann ist das Ausdruck der Demokratie in der EU und die politisch Verantwortlichen täten gut daran, wieder mehr auf den eigentlichen Souverän zu hören: den EU-Bürgern.

Insofern kann man nur hoffen, daß die Wallonen in ihrer ablehnenden Haltung stark bleiben bis die Verhandlungen gescheitert sind. In Zeiten des ausufernden weltweiten Kapitalismusses brauchen wir nicht mehr freien und ungezügelten Handel, sondern eine Vereinheitlichung globaler sozialer Standards, auf die die Wirtschaft Rücksicht nehmen muss. Wir brauchen keine wirtschaftskonforme Demokratie, sondern eine demokratie- und grundrechtskonforme Wirtschaft. Ein ungezügelter Handel entzieht sich jeglicher Regulierung und ohne die Möglichkeit einer Regulierung der Wirtschaft wird die Welt immer ungleicher und ungerechter werden.

Hoffen wir also, daß CETA scheitert!

Kategorie: 
 

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer