TSL V1.0 & V1.1 deaktivieren (Apache & Nginx)

Eigentlich! sollte man TLS V1.0 und V1.1 abschalten nachdem man den Server aufsetzt, genauso wie man auch normalerweise das SSL Protokol V1 nicht zulässt und dies in der sshd_config entsprechend abschaltet (Protocol: 2 anstelle von Protocol: 1,2) , nun aber wieder zu TLS.

TLS ermöglicht ein sogenanntes “Fallback”, das heisst, dass ein möglicher Bösewicht die Verschlüsselung entsprechend downgraden kann, indem er dem Server vorgibt, dass das schwächere Protokol verwendet werden soll.

Browserunterstützung endet

Da nun die Browserunterstützung von TLS 1.0 und TLS 1.1 seitens der goßen Browserhersteller (Google, Microsoft, Mozilla, Apple) abgedreht wird (Stichtag Jän.2020) gibt es eigentlich keinen Grund diese Protokolle aktiv zu lassen, wenn man diese nicht für irgendwelche alte Software benötigt. Gleichzeitig kann man, wenn man so will, auch TLS 1.3 aktivieren, welches derzeit noch als “Experimental” angesehen wird.

LetsEnrypt Zertifikate

LetsEncrypt Zertifikate sind ein Segen und ein Fluch. Zum einen kann man nun kostenlos und supereasy TLS auf seinem Webserver mit “nicht selbstsignierten” Zertifikaten implementieren, auf der Kehrseite wissen viele nicht, wie TLS auf dem eigenen Webserver implementiert ist, da man dies ja auch bereits mittels “apt install certbot” erledigen kann, diesen nach den DNS Namen suchen lassen die bereits auf dem Apache laufen (certbot –apache) und dann nur noch die 1 oder 2 drücken um die Seite automatisch umzuleiten (redirect) oder eben nicht (http und https getrennt verfügbar), aber ich schweife schon wieder ab.

Natürlich ist es auch eine Sache der verwendeten Software, wie TLS endgültig umgesetzt wird (selber Server – eine Software A+ andere Software A), worauf man oft auch wenig oder keinen Einfluss hat, jedoch kann man über den Server vorgeben, welche Protokolle genutzt werden dürfen.

Wie/Wo kann ich nachsehen?

Wie kann ich nun herrausfinden ob mein TLS Zertifikat welchen Standard unterstützt? Sehr einfach ist es den TSL Test von Qualys auszuführen:
https://www.ssllabs.com/ssltest/
Dort gibt man die zu testende Seite ein und bekommt das entsprechende Resultat mit den Auswertungen.

Wie ändere ich das auf dem Server?

Das ist einfach und schnell erledigt.

Apache2

nano /etc/letsencrypt/options-ssl-apache.conf

dort dann folgende Zeile suchen:
SSLProtocol all -SSLv2 -SSLv3

Dies bedeutet, dass alle TLS Versionen verfügbar sind, aber V2 und V3 werden komlett ausgenommen, also sind alle TLS V1 Versionen verfügbar.
Nun kann man hier alle Versionen bis auf TLS V1.2 ausnehmen (wahlweise kann man V1.3 auch aktiviert lassen)

TLS V1.2 aktiviert, Restliche inaktiv

SSLProtocol             all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 -TLSv1.3

TLS V1.2 und TSL V1.3 alktiviert, Restliche inaktiv

SSLProtocol             all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

Das wars auch schon wieder. Das ganze mittels CRTL & O speichern, mit CTRL & X schließen, dann noch schnell Apache neu laden – oder wahlweise neu starten.

systemctrl reload apache2

NGINX

fast die selbe Prozedur unter NGINX

nano /etc/nginx/ngin.conf

Hier sucht man sich wieder die Zeilen mit den TLS Einstellungen

Hier dann entsprechend den gewünschten Einstellungen vorgehen. Die verschiedenen Protokolle durch einen Abstand getrennt eingeben, die man in Verwendung haben will, diejenigen, die man nicht will, nicht hinschreiben.
So kann man im Screenshot z.B. sehen wie TLS1.0 1.1 und 1.2 in Verwendung sind, jedoch v3 nicht.

systemctl restart nginx

Danach kann man den Test gleich nochmals machen, hierfür auf “clear Cache” klicken wie im Screenshot gezeigt und der Test wird erneut durchgeführt

Ich hoffe, ich konnte dir ein wenig Klarheit verschaffen/helfen.