Weiterleitung von HTTP auf HTTPS mit Zwischenzertifikat nach aktuellen Anforderungen

Vor kurzem kam ich in die Verlegenheit, wieder mal HTTPS auf einem Apache Webserver einzurichten. Bei der Gelegenheit habe ich mich auch mal wieder dazu eingelesen, was dem aktuellen Stand der Technik entspricht nach den ganzen SSL kritischen Problemen in letzter Zeit. Nachfolgend einfach mal ohne große Erklärung ein vollständiger VHost Eintrag für Weiterleitung von HTTP auf HTTPS mit allen notwendigen SSL Absicherungen. Manch einer ist bestimmt dankbar, wenn er ohne großes Suchen die passende Konfiguration zum kopieren vorfindet.

<VirtualHost *:80>
    ServerName your.server.de
    ServerAdmin support@your.server.de
    DocumentRoot "/var/www/"

    RewriteEngine on
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R=301,L]

    ErrorLog "|/usr/bin/cronolog /var/log/apache2/logs/your.server.de/%Y/%m/%d/error.log --symlink=/var/log/apache2/logs/your.server.de/error.log"
    CustomLog "|/usr/bin/cronolog /var/log/apache2/logs/your.server.de/%Y/%m/%d/access.log --symlink=/var/log/apache2/logs/your.server.de/access.log" combined
</VirtualHost>

<VirtualHost *:443>
    ServerName your.server.de
    ServerAdmin support@your.server.de
    DocumentRoot "/var/www/"

    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/your.server.de.crt
    SSLCertificateKeyFile /etc/apache2/ssl/your.server.de.key
    SSLCertificateChainFile /etc/apache2/ssl/thawte_DV_SSL_CA_-_G2.crt

    SSLProtocol ALL -SSLv2 -SSLv3 ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS
    SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH !ECDHE-RSA-DES-CBC3-SHA EDH+aRSA RSA+3DES !aNULL !eNULL !LOW !SEED !CAMELLIA !MD5 !EXP !PSK !SRP !DSS !RC4"

    SSLHonorCipherOrder On
    SSLCompression Off

    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
    Header always set Strict-Transport-Security "max-age=31556926"

    ErrorLog "|/usr/bin/cronolog /var/log/apache2/logs/your.server.de/%Y/%m/%d/ssl-error.log --symlink=/var/log/apache2/logs/your.server.de/ssl-error.log"
    CustomLog "|/usr/bin/cronolog /var/log/apache2/logs/your.server.de/%Y/%m/%d/ssl-access.log --symlink=/var/log/apache2/logs/your.server.de/ssl-access.log" combined
</VirtualHost>

Zu beachten ist: Ich verwende Cronolog (unter Debian / Ubuntu nachinstallierbar mit apt-get install cronolog) welches täglich ohne weitere Zutun die Logfiles rotiert.

Das könnte Dich auch interessieren...

2 Antworten

  1. Das Gleiche in Grün nochmal für NGINX 🙂

    server {
    listen *:80;
    server_name your.server.de;
    error_log /var/log/nginx/your.server.de/error.log;
    access_log /var/log/nginx/your.server.de/access.log;
    rewrite ^/(.*)$ https://your.server.de/$1 permanent;
    }

    server {
    listen *:443 ssl;
    server_name your.server.de;

    ssl on;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_certificate /etc/nginx/cert/your.server.de.crt;
    ssl_certificate_key /etc/nginx/cert/your.server.de.key;
    ssl_ciphers „EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 !EECDH+aRSA+RC4 EECDH EDH+aRSA !RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS“;
    ssl_prefer_server_ciphers on;
    ssl_verify_depth 3;

    charset utf-8;

    access_log /var/log/nginx/your.server.de/access.ssl.log;
    error_log /var/log/nginx/your.server.de/error.ssl.log;

    index index.php;
    root /var/www/your.server.de/;

    location / {
    try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ /\. {
    deny all;
    }

    location ~ \.php$ {
    include fastcgi_params;
    fastcgi_param PATH_INFO $path_info;
    fastcgi_pass 127.0.0.1:9000;
    }
    }

  2. Manuel sagt:

    Danke schön! 😉

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.