CWP – TLS v1.3 Unterstützung aktivieren

Da CWP leider trotz all der Updates offiziell kein TLSv1.3 für SSL unterstützt bei Centos7, muss man dies manuell installieren, wenn man es unbedingt haben möchte.

Hier zeige ich euch, wie das funktioniert und was es dazu braucht.

Der Grund, warum kein TSLv1.3 möglich ist, liegt daran, dass leider noch immer eine veraltete Version von OpenSSL installiert ist, und diese scheinbar für Centos7 auch nicht mehr upgedated wird. TLSv1.3 benötigt nämlich mindestens OpenSSL 1.1.1, Centos7 mit CWP bietet allerdings nur 1.0.2 an.

Bitte unterstützt meine Arbeit




Also, los gehts:

Anforderungen:

  • Apache version 2.4.37 oder größer.
  • Nginx version 1.13.0 oder größer.
  • OpenSSL version 1.1.1 oder größer.
  • Einen korrekten Domain Namen mit korrekt eingestellten DNS Einträgen.
  • Ein gültiges TLS Zertifikat.

Wir sehen also, im normalfall bei einem aktuellen CWP, müssen wir nur OpenSSL updaten.


Wir lassen uns erstmal die aktuellen Versionen von OpenSSL und nginx ausgeben

openssl version && nginx -v

Nun installieren wir uns die Entwicklertools damit wir anschließend OpenSSL in der neuen Version kompilieren können

yum install gcc gcc-c++ pcre-devel zlib-devel make unzip gd-devel perl-ExtUtils-Embed libxslt-devel openssl-devel perl-Test-Simple

yum groupinstall 'Development Tools'

Nun laden wir uns die derzeit aktuelle OpenSSL Version herunter, entpacken diese und installieren sie

cd /usr/src
wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1f.tar.gz
tar xvf openssl-1.1.1f.tar.gz
mv openssl-1.1.1f openssl
cd openssl
./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl --libdir=/lib64 shared zlib-dynamic
make -j4
make test
make install

Wir haben die neueste Version von OpenSSL heruntergeladen, die zum Zeitpunkt des Schreibens dieses Beitrags openssl-1.1.1f ist. Danach dekomprimieren wir die Datei, benennen den Ordnernamen um und navigieren zum OpenSSL-Ordner. –prefix und –openssldir steuern die Konfiguration der installierten Komponenten. Das Verhalten und die Wechselwirkungen von –prefix und –openssldir unterscheiden sich geringfügig zwischen OpenSSL 1.0.2 und darunter und OpenSSL 1.1.0 und darüber. Setzen Sie außerdem –prefix und –openssldir auf denselben Pfad. Shared erzwingt das Erstellen von Shared Libraries und Zlib bedeutet, dass die Komprimierung mit Hilfe der Zlib-Bibliothek durchgeführt wird. Es lohnt sich, den make-Test auszuführen, um zu sehen, ob es unerwartete Fehler gibt. Wenn es welche gibt, müssen Sie diese beheben, bevor Sie die Bibliothek installieren.

Jetzt benennen wir die alten OpenSSL binaries um und erzeugen einen neuen symlink.

mv /usr/bin/openssl /usr/bin/openssl-backup
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

Nun testen wir das Ganze. Mit folgedem Befehl sollte dann auch TLSv1.3 angezeigt werden

openssl ciphers -v | awk '{print $2}' | sort | uniq

Jetzt haben wir das neue OpenSSL installiert, allerdings müssen wir jetzt noch nginx neu kompilieren, damit unsere neue Version auch verwendet wird. Dazu laden wir die aktuell neueste Version herunter:

cd /usr/src
wget http://nginx.org/download/nginx-1.18.0.tar.gz
tar xvf nginx-1.18.0.tar.gz
cd nginx-1.18.0
./configure --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx \
--modules-path=/usr/lib64/nginx/modules \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--http-client-body-temp-path=/var/lib/nginx/tmp/client_body\ --http-proxy-temp-path=/var/lib/nginx/tmp/proxy \
--http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi \
--http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi \
--http-scgi-temp-path=/var/lib/nginx/tmp/scgi \
--pid-path=/run/nginx.pid \
--lock-path=/run/lock/subsys/nginx --user=nginx \
--group=nginx \
--with-file-aio  \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-stream_ssl_preread_module \
--with-http_addition_module \
--with-http_xslt_module=dynamic \
--with-http_image_filter_module=dynamic \
--with-http_sub_module \
--with-http_dav_module \
--with-http_flv_module \
--with-http_mp4_module \
--with-http_gunzip_module \
--with-http_gzip_static_module \
--with-http_random_index_module \
--with-http_secure_link_module \
--with-http_degradation_module \
--with-http_slice_module \
--with-http_stub_status_module \
--with-http_perl_module=dynamic \
--with-http_auth_request_module \
--with-mail=dynamic \
--with-mail_ssl_module \
--with-pcre \
--with-pcre-jit \
--with-stream=dynamic \
--with-stream_ssl_module \
--with-openssl=/usr/src/openssl
make -j4
make install


Nun ist euer nginx bereit und in der Lage mit TLSv1.3 umzugehen.

Aktualisieren Sie Ihre Nginx-Konfiguration, um TLS 1.3 zu aktivieren.
Fügen Sie die folgenden Zeilen in den Server-Block Ihrer Nginx-Vhost-Konfiguration ein.

ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;

Related posts

CWP – Roundcube auf Version 1.5.6 updaten

CWP – MariaDB auf eine neue Version updaten

Verbessern des Nachrichtenflusses mit MTA-STS

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Read More