silvesterlangen.de

Seite
Menü

HTTPs

Um HTTPs zu aktivieren, ist in der entsprechenden vHost-Konfiguration ein Eintrag vorzunehmen bzw. der alte Eintrag zu löschen. Um HTTPs nutzen zu können ist ein Zertifikat notwendig. Es kann ein selbstsigniertes Zertifikat sein, aber ein echtes offiziell gültiges Zertifikat wäre besser. Dafür könnte, wenn man kein Geld ausgeben will, Letsencrypt eine Anlaufstelle sein.

 

Selbstsigniertes Zertifikat erstellen

openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout /etc/apache2/ssl/apache-selfsigned.key -out /etc/apache2/ssl/apache-selfsigned.crt

<VirtualHost *:443>
        ServerName mydomain.tld
        DocumentRoot /var/www/html
        ErrorLog /var/log/apache2/error.log
        CustomLog /var/log/apache2/access.log combined
        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl/apache-selfsigned.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache-selfsigned.key </VirtualHost>

Nun nicht vergessen das Zertifikat noch einzubinden, da es sonst nicht funktioniert. Und natürlich auch SSL aktivieren. Das nötige Modul lädt man mit a2enmod ssl

 

Veraltetes SSL abschalten

Bestimmt weiß der kluge Leser, dass SSL, der Verläufer von TLS, in der Version 3 längst unsicher ist. Google hilft da gerne aus, wer sich zum Thema Poodle Attack schlau machen will. Ich zeige hier wie man es am besten abschaltet und verifiziert, dass es wirklich abgeschaltet ist.

Am einfachsten ist es, wenn es im Apache2-Modul - bei Debian ist es in /etc/apache2/mods-available/ssl.conf - abgeschaltet wird. Somit ist automatisch jeder vHost betroffen und man muss es nicht auf jedem vHost extra machen - aber das kann man natürlich auch tun.

 

Die folgenden Zeilen gehören also in die ssl.conf oder zur Konfig des vHosts und schaltet alle unsicheren Protokolle ab. Alleine TLS1.2, welches aktuell ist, bleibt eingeschaltet.

SSLProtocol All -SSLv3 -TLSv1 -TLSv1.1 +TLSv1.2
SSLHonorCipherOrder On
SSLCipherSuite ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:
ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS

Die Zeile SSLCipherSuite ist eigentlich eine zusammengehörende lange Zeile. Ich musste nur wegen der Website die Zeile umbrechen
 
 

Die Sache prüfen

Natürlich will man prüfen, ob das Ergebnis das bringt, was gewünscht war. Am besten geht es mit "sslscan", was man einfach mit yum oder apt-get nachinstallieren kann. Der Syntax ist kinderleicht. Hier meine Ausgabe:

root@vm067:~# sslscan 127.0.0.1
Version: 1.11.5
OpenSSL 1.0.2l  25 May 2017

OpenSSL version does not support SSLv2
SSLv2 ciphers will not be detected

OpenSSL version does not support SSLv3
SSLv3 ciphers will not be detected
Testing SSL server 127.0.0.1 on port 443

  TLS renegotiation:
Session renegotiation not supported

  TLS Compression:
OpenSSL version does not support compression
Rebuild with zlib1g-dev package for zlib support

  Heartbleed:
TLS 1.2 not vulnerable to heartbleed
TLS 1.1 not vulnerable to heartbleed
TLS 1.0 not vulnerable to heartbleed

  Supported Server Cipher(s):
Preferred TLSv1.2  256 bits  ECDHE-RSA-AES256-GCM-SHA384   Curve P-256 DHE 256
Accepted  TLSv1.2  128 bits  ECDHE-RSA-AES128-GCM-SHA256   Curve P-256 DHE 256
Accepted  TLSv1.2  256 bits  DHE-RSA-AES256-GCM-SHA384     DHE 4096 bits
Accepted  TLSv1.2  128 bits  DHE-RSA-AES128-GCM-SHA256     DHE 4096 bits
Accepted  TLSv1.2  256 bits  ECDHE-RSA-AES256-SHA384       Curve P-256 DHE 256
Accepted  TLSv1.2  256 bits  ECDHE-RSA-AES256-SHA          Curve P-256 DHE 256
Accepted  TLSv1.2  256 bits  DHE-RSA-AES256-SHA256         DHE 4096 bits
Accepted  TLSv1.2  256 bits  DHE-RSA-AES256-SHA            DHE 4096 bits
Accepted  TLSv1.2  128 bits  ECDHE-RSA-AES128-SHA256       Curve P-256 DHE 256
Accepted  TLSv1.2  128 bits  ECDHE-RSA-AES128-SHA          Curve P-256 DHE 256
Accepted  TLSv1.2  128 bits  DHE-RSA-AES128-SHA256         DHE 4096 bits
Accepted  TLSv1.2  128 bits  DHE-RSA-AES128-SHA            DHE 4096 bits
Accepted  TLSv1.2  256 bits  AES256-GCM-SHA384
Accepted  TLSv1.2  128 bits  AES128-GCM-SHA256
Accepted  TLSv1.2  256 bits  AES256-SHA256
Accepted  TLSv1.2  256 bits  AES256-SHA
Accepted  TLSv1.2  128 bits  AES128-SHA256
Accepted  TLSv1.2  128 bits  AES128-SHA

  SSL Certificate:
Signature Algorithm: sha256WithRSAEncryption
RSA Key Strength:    4096

Subject:  192.168.2.67
Issuer:   192.168.2.67

Not valid before: Jul 10 17:10:25 2018 GMT
Not valid after:  Jul 10 17:10:25 2019 GMT
root@vm067:~#
 
Wer es auf die Spitze treiben will, der lässt seine Seite von ssllabs.com prüfen, um ggf. noch einige Verbesserungen vorzunehmen und veraltete Ciphers abzuschalten. 
 

 
Hinweis:
Ab Debian Buster ist sslscan nicht mehr dabei. Man kann es sich aber von Git herunterladen und kompilieren. Hier eine Kurzanleitung dazu:
 
Herunterladen:
 
Benötigte Pakete installieren:
apt-get install build-essential git zlib1g-dev
apt-get build-dep openssl
 
Kompilieren:
make static

« vorige Seite Seitenanfang nächste Seite »
Seite
Menü
Earned Certificates:
LPIC-1 LPIC-1 LPIC-1
Powered by CMSimple | Template by CMSimple | Login