Wer sich bei einer Seite wie https://www.ssllabs.com/ ärgert, dass der eigene Server mit einer Config aus dem gefühlt letzten Jahrtausend mit einem F bewertet wird (wie ich), muss die Sicherheit aufrüsten. Mit ein paar Config-Zeilen ist das schlimmste schnell aus dem Weg geschafft.
Schlecht (=Rating F)
SSLEngine on SSLCertificateFile /etc/apache2/ssl/my.crt SSLCertificateKeyFile /etc/apache2/ssl/my.key SSLProtocol all SSLCipherSuite HIGH:MEDIUM
Gut (=Rating B)1)
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH SSLProtocol All -SSLv2 -SSLv3 SSLHonorCipherOrder On Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload" Header always set X-Frame-Options DENY Header always set X-Content-Type-Options nosniff
Mehr Infos: https://cipherli.st/
Sehr gut (A+)
Komplette Config für Apache22)
NameVirtualHost 1.2.3.4:443
<VirtualHost 1.2.3.4:443>
ServerName example.com:443
ServerAdmin nobody@example.com
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
Header always set Strict-Transport-Security "max-age=63072000"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
DocumentRoot /srv/httpd/www/
<Directory /srv/httpd/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
</VirtualHost>
Mit der Software Let's Encrypt kann man in allen bekannten Systemen als gültig anerkannte Zertifikate erstellen. Aus meiner Sicht sinnvoller ist zwar eine eigene CA, aber man kann natürlich nicht in allen Fällen auf den zu versorgenden Client-Systemen diese installieren. Überall diese SSL-Mafia ^^ Let's Encrypt ist auch ein fürchterliches Python-Programm, was mit root-Rechten laufen muss
und sich bei jedem Start updated.
Zertifikate können erstellt werden, wenn eine Domain auf ein bestimmtes Verzeichnis zeigt. Zum Generieren von Zertifikaten für Subdomains kann man diese temporär einfach alle auf ein Verzeichnis zeigen lassen, was als Arbeitsverzeichnis dient. Der Online-Service muss unter der korrespondierenden NICHT-SSL-Adresse den Pfad .well-known/… erreichen können, der im Rahmen der Zertifikate-Generierung erzeugt wird.
./letsencrypt-auto certonly --webroot -w /var/www -d example.com
Apache frisst die Zertifikate wie in der A+-Config im vorherigen Abschnitt beschrieben. Hier folgen noch ein paar andere Serverdienste, denen man die Dinger unterjubeln kann, wenn man sie passend zusammenschustert
cp /etc/letsencrypt/live/mail.example.com/fullchain.pem /etc/exim4/cert/exim.crt cp /etc/letsencrypt/live/mail.example.com/privkey.pem /etc/exim4/cert/exim.key
cat /etc/letsencrypt/live/mail.example.com/cert.pem /etc/letsencrypt/live/mail.example.com/fullchain.pem /etc/letsencrypt/live/mail.example.com/privkey.pem > /etc/courier/combined.pem
cat /etc/letsencrypt/live/im.example.com/cert.pem /etc/letsencrypt/live/im.example.com/privkey.pem > /etc/ejabberd/ejabberd.pem
cp /etc/letsencrypt/live/chat.rkcsd.eu/cert.pem /etc/prosody/certs/cert.pem cp /etc/letsencrypt/live/chat.rkcsd.eu/privkey.pem /etc/prosody/certs/privkey.pem
Bei den restlichen Diensten (nicht Webserver) ist die SSL-Konfig meist zumindest gut. Exim muss ja auch mit nicht ganz so qualitativen SSL-Konfigurationen sprechen können, inkl. keiner Verschlüsselung. Validieren wird eh keiner was anderes als HTTP

2012-2025 René Knipschild | www.reneknipschild.net | Impressum | Datenschutz