Drücke „Enter”, um zum Inhalt zu springen.

Weiterleitung von HTTP auf HTTPS mit Zwischenzertifikat nach aktuellen Anforderungen

Manuel 2

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.

  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;
    }
    }

Schreibe einen Kommentar zu Michael Wolfram Antworten abbrechen

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.