Let’s Encrypt Wildcard Zertifikate kommen später

Wie man der Community Ankündigung entnehmen kann, kommen die Wildcard Zerts von LE „später“ ™:

https://community.letsencrypt.org/t/acmev2-and-wildcard-launch-delay/53654

Eigentlich sollte es vorgestern schon losgehen, aber das wird erstmal verschoben. Neue Termine gibt es nicht. Als grund wird u.a. das Problem angegeben, das man über die TLS-SNI Erweiterung Zerts bekommen konnte, auch wenn man die gar nicht haben können sollte, so die Domain auf dem gleichen Shared-Hosting System war.

SNI erlaubt es, erstmal den Domainnamen zu senden, und der Server sucht dann das richtige Zertifikat raus, daß er dem Client präsentiert. Nicht zwingenderweise muß ein Client dann auch diese Domain als „Host:“ header angeben. Man kann also ein Zert bekommen, daß nicht zum Domainnamen paßt, dessen Inhalt man abrufen möchte.

 

Apache – Alles umleiten außer einem Pfad

Wer schon einmal eine Domain komplett z.b. auf https://domain.name umgeleitet hat, der kennt so einen Vhost Eintrag:

<VirtualHost *:80>
    ErrorLog /etc/httpd/logs/error_log
    CustomLog /etc/httpd/domlogs/domain_name.log combined
    LogLevel error
    ServerName domain.name
    ServerAlias *.domain.name
    Redirect 301 / https://domain.name
</VirtualHost>

Was aber wenn man einen Pfad nicht umleiten kann/darf/will, weil das zu Problemen führen würde z.b. mit Lets Encrypt ?

Im Falle von Let’s Encrypt ist die Lösung ein negativer Pfadausschluß :

<VirtualHost *:80>
    ErrorLog /etc/httpd/logs/error_log
    CustomLog /etc/httpd/domlogs/domain_name.log combined
    LogLevel error
    ServerName domain.name
    ServerAlias *.domain.name
    RedirectMatch 301 ^/((?!.well-known/acme-challenge).*)$ https://domain.name
</VirtualHost>

Damit wird alles, nur nicht der Pfad „/.well-kown/acme-challenge“ umgeleitet. Es ist für Lets Encrypt jetzt wieder möglich, die Challenges abzufragen.

Lets Encrypt: Zertifikatsprobleme auf iOS Geräten

Seit Dezember 2015 stellt Lets Encrypt kostenlose Zertifikate zur Verfügung. Damit kann man Webseiten und Mailserver schützen, wenn da nicht die liebe Realität in Form von iOS wäre.

Bei unserem hausinternen Versuch, die Mailserver von einem kommerziellen Comodozertifikat auf Lets Encrypt umzustellen, was für Webseiten überhaupt kein Problem war, stellte sich raus, das sofort alle iOS Endgeräte, egal ob iPhone 5,6,7 oder iOS 9,10 keine Emails mehr empfangen konnten. Entäuschenderweise war auch Thunderbird betroffen 🙁

Daraufhin haben wir auf ein Comodozertifikat umgestellt und die Lage beruhigte sich, bis einige iOS Geräte anfinden, nur noch Emails zu senden, aber keine mehr zu empfangen. Wohlgemerkt, mit dem gleichen SSL-Zertifikat 😉

Nach derzeitigen Erkenntnissen seitens Comodo und unseren Technikern, liegt das Problem beim iOS Gerät selbst. Mal sehen was Apple dazu meint.

Auflösung: Mail.APP ist buggy, denn jedes andere installierte Emailprogramm auf einem betroffenen IPhone hat das Zertifikat einwandfrei akzeptiert. Aber der Witz kommt jetzt, dem Kunden hat das neue Mailprogramm „My Mail“  viel besser gefallen als die original App 😀

 

Android 3.2 und das Let’s Encrypt Problem

Ich hab ja neulich auf HTTPS-Only Blog umgestellt, aber so ganz „Only“ geht es dann doch nicht.

Da die meisten RSS Feedleser für Handies die Zertifikate aus dem Truststore von Android benutzen, in dem Sie den internen Webbrowser benutzen um die Feeds anzuzeigen, kommt es mit Let’s Encrypt Zertifikaten zu Problemen: Die stehen da schlicht nicht drin. Wer da nicht drin steht, wird nicht angezeigt.

Das Problem habe ich bei meinen eigenen Android Programmen durch einen eigenen Truststore gelöst, der einfach die aktuellen Firefox Zertifikate bekommt. Das dieser Trick zwangsweise nur für eigene Programme funktioniert, mußte ich meinem Blog leider sagen, das Android weiterhin per Port 80 abrufen darf.

Und so geht so eine Ausnahme :

RewriteCond %{HTTP_HOST} .*marius\.bloggt-in-braunschweig\.de
RewriteCond %{SERVER_PORT}   !^443$
RewriteCond %{HTTP_USER_AGENT} !.*Android.3\.2.*
RewriteRule  (.*)  https://%{HTTP_HOST}/$1   [L]

 

Blog auf LE HTTPS umgestellt.

Ich habe mein Blog auf HTTPS mit einem Lets Encrypt Zertifikat umgestellt.

Falls Ihr mit den RSS Feeds Probleme beim Abholen bekommt, meldet Euch bitte.

Wie man das macht : )

Als erstes bestellen wir mal das Zertifikat :

/etc/httpd/letsencrypt/letsencrypt.sh -c -d marius.bloggt-in-braunschweig.de -d www.marius.bloggt-in-braunschweig.de

Obiges geht natürlich nur, wenn Ihr den Bash Clienten von Lets Encrypt auch dort instaliert habt.

Dann legen wir im Apache eine HTTPS Site an, z.B. hier : /etc/httpd/sites/1_marius.bloggt-in-braunschweig.de

<VirtualHost *:443>
    SSLProxyEngine On
    ServerName marius.bloggt-in-braunschweig.de
    ServerAlias *.marius.bloggt-in-braunschweig.de
    ... Sachen die Euch nichts angehen :) ...    
    Header always set Strict-Transport-Security "max-age=31556926 includeSubDomains" env=HTTPS
    SSLEngine on
    SSLInsecureRenegotiation off
    SSLProtocol TLSv1.2
    SSLHonorCipherOrder on
    SSLCipherSuite EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH+aRSA+RC4:EECDH:EDH+aRSA:HIGH:!MD5:!aNULL:!EDH:!RC4:!RC4
    SSLCertificateKeyFile /etc/httpd/letsencrypt/certs/marius.bloggt-in-braunschweig.de/privkey.pem
    SSLCertificateFile /etc/httpd/letsencrypt/certs/marius.bloggt-in-braunschweig.de/cert.pem
    SSLCACertificateFile /etc/httpd/letsencrypt/certs/marius.bloggt-in-braunschweig.de/chain.pem

</VirtualHost>

Und dann muß man seiner Site noch sagen, daß sie alle HTTP Zugriffe auf HTTPS umleiten soll, bevor diese stattfinden.

RewriteCond %{HTTP_HOST} ^www.marius.bloggt-in-braunschweig.de
RewriteRule (.*) https://marius.bloggt-in-braunschweig.de/$1 [R=301,L]

RewriteCond %{HTTP_HOST} .*marius\.bloggt-in-braunschweig\.de
RewriteCond %{SERVER_PORT}   !^443$
RewriteRule  (.*)  https://%{HTTP_HOST}/$1   [L]

Das meint, daß wer WWW. aufruf, auf den Hauptdomainnamen umgeleitet wird. (Am.d.R. www. braucht kein Mensch mehr)
Die zweite Anweisung leitet alles was nicht auf Port 443 ankommt, auf Port 443 um, so daß es verschlüsselt wird.

Das wars.

Jetzt bleibt nur die Frage zu klären: „Wieso hast Du auf https umgestellt, wo BIB.de doch ohnehin schon ein LE Zertifikat hatte ?“

Na weil das bei Subdomain nicht anders geht, da LE keine Wildcardzerts ausstellt und 100 Einträge im Hauptzertifikat sind auch irgendwann zu ende.